Freemarker 将布尔变量展开为字符串“0”;“真的”;或;假;
在freemarker模板中,我想将布尔变量展开为如下字符串:Freemarker 将布尔变量展开为字符串“0”;“真的”;或;假;,freemarker,Freemarker,在freemarker模板中,我想将布尔变量展开为如下字符串: <#assign booleanVar = "test".isEmpty() /> state: ${booleanVar} <#-- this throws an exception! --> 到目前为止,我发现实现这一目标的唯一途径是: state: <#if booleanVar>true<#else>false</#if> 状态:truefalse 有更简单的
<#assign booleanVar = "test".isEmpty() />
state: ${booleanVar} <#-- this throws an exception! -->
到目前为止,我发现实现这一目标的唯一途径是:
state: <#if booleanVar>true<#else>false</#if>
状态:truefalse
有更简单的方法吗
booleanVar?string("true", "false")
虽然如此,
应该可以正常工作。从FreeMarker 2.3.20开始,如果您想打印真/假(因为您正在生成JavaScript或类似的内容),请编写
${booleanVar?c}
(?c
表示“计算机格式”,也用于数字)${booleanVar?string}
是危险的,因为有人可以将boolean_格式设置为yes、no
或其他。。。(顺便说一句,在这种情况下,${booleanVar}
在2.3.20中也会起作用,您会得到yes
和no
)
请参阅:如果我这样做,我会得到:“freemarker.core.InvalidReferenceException:表达式booleanVar$string未定义”。我重新阅读了该链接。。。把美元换成了?例如。我不知道freemarker:)从freemarker 2.3.20开始,您应该使用${booleanVar?c}
。仅仅写${booleanVar?string}
是危险的,因为默认格式可以更改。更多细节请参见我的答案。
booleanVar?string("true", "false")
booleanVar?string