将布尔变量展开为字符串“true”或“false”

时间:2009-10-02 17:55:43

标签: freemarker

在freemarker模板中,我想将布尔变量扩展为类似的字符串:

<#assign booleanVar = "test".isEmpty() />
state: ${booleanVar} <#-- this throws an exception! -->

这是我想要的输出:

state: false

我现在发现达到这个目标的唯一方法是:

state: <#if booleanVar>true<#else>false</#if>

有更简单的方法吗?

2 个答案:

答案 0 :(得分:21)

booleanVar?string("true", "false")

虽然true/false is default,所以

booleanVar?string

应该可以正常工作。

答案 1 :(得分:4)

从FreeMarker 2.3.20开始,如果你想打印true / false(因为你正在生成JavaScript等),请写${booleanVar?c}?c代表“计算机格式”,也用于数字)。 ${booleanVar?string}对此很危险,因为有人可以将boolean_format设置为yes,no或其他......(顺便说一句,在这种情况下,${booleanVar}也会在2.3.20中运行,你得到yesno。)

请参阅:http://freemarker.org/docs/ref_builtins_boolean.html#ref_builtin_c_boolean