Freemarker检查变量是否存在且不为零

时间:2014-04-16 07:59:40

标签: freemarker

$ {something.id!}可以帮助我检查变量是否存在。但是如果我还想检查它是不是0呢?

3 个答案:

答案 0 :(得分:2)

[#if something.id?? && something.id!=0]
   ${something.id}
[/#if]

或使用标准的freemarker语法:

<#if something.id?? && something.id!=0>
  ${something.id}
</#if>

答案 1 :(得分:0)

您可以使用if语句,例如

<#assign id0=0>
<#assign id1=1>

id0=<#if id0?? && id0 != 0>${id0}</#if>,
id1=<#if id1?? && id1 != 0>${id1}</#if>,
idx=<#if idx?? && idx != 0>${idx}</#if>

输出

id0=, id1=1, idx=

或者更好的是使用功能。此函数对值使用默认值零,以便它可以处理缺少/空值。如果值为零,它将返回零长度字符串,否则返回原始值。

<#function existsNotZero value=0>
    <#if value == 0>
        <#return "">
    <#else>
        <#return value>
    </#if>
</#function>

<#assign id0=0>
<#assign id1=1>

id0=${existsNotZero(id0)},
id1=${existsNotZero(id1)},
idx=${existsNotZero(idx)}

输出

id0=, id1=1, idx=

答案 2 :(得分:0)

像这样:

<#if (something.id!0) != 0>${something.id}</#if>