Freemarker:与默认值进行比较

时间:2015-07-09 13:13:55

标签: comparison freemarker default-value

我有这个条件:

<#if tag.level?? && tag.level == "IMPORTANT">

是否有可能将其缩短为这样的东西?

<#if tag.level!"" == "IMPORTANT">

如果我试试这个

<#assign tag = {"bar": "AA"} >
${ ((tag.bar)!"x") = "x" }

我得到了

  

不能自动将布尔值转换为字符串,因为&#34; boolean_format&#34;设置为&#34; true,false&#34;,这是传统的默认计算机语言格式,因此不被接受。

请参阅http://freemarker-online.kenshoo.com/

2 个答案:

答案 0 :(得分:0)

1)${ ((tag.bar)!"x") = "x" }应该是${ ((tag.bar)!"x") == "x" }

2)使用内置显示布尔值,${ (((tag.bar)!"x") = "x")?c }(如果你的Freemarker比2.3.20更新)或${ (((tag.bar)!"x") = "x")?string("true", "false") }

答案 1 :(得分:0)

这是您遇到的优先问题。这有效:

<#if (tag.level!"") == "IMPORTANT">

但是对于这种默认情况,有一种较短的形式:

<#if tag.level! == "IMPORTANT">