如何将数字与 freemarker 中的空检查进行比较?

pet*_*hel 2 freemarker

在 freemarker 中比较数字最优雅的是什么?

<#if (variable = 2) ></#if>
Run Code Online (Sandbox Code Playgroud)

这将不包括空检查?

如果我这样做

 <#if (variable! = 2) ></#if>
Run Code Online (Sandbox Code Playgroud)

然后freemarker会抱怨不同的类型。

我最终这样做了

<#if (variable!?html = "2") ></#if>
Run Code Online (Sandbox Code Playgroud)

但我想这不是这样做的方式吗?如何将数字与 freemarker 中的空检查进行比较?

dde*_*any 5

如果变量为空,您希望发生什么?如果你想要那么假:

<#if variable?? && variable == 2 ></#if>
Run Code Online (Sandbox Code Playgroud)

如果你想假设 0:

<#if variable!0 == 2 ></#if>
Run Code Online (Sandbox Code Playgroud)

注意:=也有效,但这是一个不好的做法,因为表达式可能会与命名参数分配混淆。的()是多余的; 它不像在 Java 中。?html旨在用于转义<等,但更糟糕的是,您会在那里触发本地化格式,这可能会破坏比较。因此,如果您想做类似的事情,请改用?c(* c *omputer format)。