93

如何处理nullFreemarker 中的值?null当数据中存在值时,我在模板中遇到一些异常。

4

5 回答 5

120

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

${(object.attribute)!}

或者,如果您想在属性为 时显示默认文本null

${(object.attribute)!"default text"}
于 2014-12-23T04:46:46.637 回答
109

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

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

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

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

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

资料来源:FreeMarker 手册

于 2012-12-19T10:35:59.697 回答
5

我认为它以另一种方式工作

<#if object.attribute??>
   Do whatever you want....
</#if>

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

于 2014-08-05T15:12:35.103 回答
1

如果您有问题,我想添加更多上下文,这就是我尝试过的。

<#if Recipient.account_type?has_content>
  … (executes if variable exists)
<#else>
  … (executes if variable does not exist)
</#if>

这更像是 Javascript IF 和 ELSE 概念,我们要检查该值是否通过所需的逻辑链接。

Freemarker 网站

其他参考:

场景:客户的 ID 和名称组合在一起,如13242 Harish,所以我们的利益相关者需要唯一的名称,所以我尝试了这个${record.entity?keep_after(" ")}并且它确实有效,但是,它只能在以下情况下工作你有空间,但是当客户没有空间和一个名字时,我不得不做一些 IF ELSE 条件来检查 Null 值。

于 2021-06-10T19:23:14.630 回答
1

在语句??末尾使用运算符。<#if>

此示例演示如何处理nullFreemaker 模板中两个列表的值。

List of cars:
<#if cars??>
    <#list cars as car>${car.owner};</#list>
</#if>
List of motocycles:
<#if motocycles??>
    <#list motocycles as motocycle>${motocycle.owner};</#list>
</#if>
于 2015-08-27T12:54:17.413 回答