在Freemarker中处理空值

Ana*_*d B 73 freemarker

如何处理nullFreemarker中的值?当null数据中存在值时,模板中会出现一些例外情况.

Tom*_*lst 85

您可以使用??测试运算符:

这将检查对象的属性是否为null:

<#if object.attribute??></#if>

这将检查对象或属性是否为null:

<#if (object.attribute)??></#if>

资料来源:FreeMarker手册

  • 在空检查旁边的`has_content`也检查该值是否为空.这适用于字符串,序列,散列或集合.如果对象是日期,布尔值或数字,则它将作为非空.对于所有其他类型,它将作为空. (2认同)

Arn*_*aud 83

从freemarker 2.3.7开始,您可以使用以下语法:

${(object.attribute)!}
Run Code Online (Sandbox Code Playgroud)

或者,如果要在属性为null以下时显示默认文本:

${(object.attribute)!"default text"}
Run Code Online (Sandbox Code Playgroud)

  • 对于那些使用 Freemarker 作为 XDocReport 模板引擎的人,这在添加 `&lt;dependency&gt;&lt;groupId&gt;org.freemarker&lt;/groupId&gt;&lt;artifactId&gt;freemarker&lt;/artifactId&gt;&lt;version&gt;2.3.22&lt;/version&gt;&lt; /dependency&gt;` 到您的 pom.xml。 (2认同)
  • 很好的例子。对我帮助很大。然而,支架已经过时了。`${称呼!'亲爱的先生或女士'}` (2认同)

Sen*_*kar 5

我认为反之亦然

<#if object.attribute??>
   Do whatever you want....
</#if>
Run Code Online (Sandbox Code Playgroud)

如果object.attribute不为NULL,则打印内容。