使用FreeMarker,就遇到这样的事情。
??
运算符处理缺失值和 false
。例如下面的
<#assign someVar = false>
<#if someVar??>
someVar is empty...
<#else>
someVar exists!
</#if>
输出:
someVar is empty...
尽管我假设
false
应被视为现有值,因此输出应为 someVar exists!
。
FreeMarker 中是否有一些设置来规范此类行为?处理可选布尔值的最佳方法是什么? (对于像
stringVar!"default value"
这样的字符串来说一切都很清楚,但这似乎不适用于布尔值)。我需要处理可选的布尔字段,并为 true
输出“Yes”,为 false
输出“No”,为空值输出“—”。
??
不会专门处理布尔值。 someVar??
表示“someVar 存在”,并且 false
确实存在。让您感到困惑的是您认为 ??
具有相反的含义(“someVar 丢失”)。