WeG*_*eGa 2 java apache templates freemarker
我正在尝试用对象实现模板,它可以是复数。
例如:“有/有 n 只狗。” 当我尝试时There <#if dogNames?size>1>is<#else>are</#if> dogNames?size dog<#if dogNames?size>1>s</#if>,我收到异常
freemarker.core.NonBooleanException:对于“#if”条件:需要一个布尔值,但这已经计算为一个数字(包装器:ftSimpleNumber):==> dogNames?size
即用于比较的尖括号存在问题。
在此博客中,据说双引号足以转义括号,但我无法在 Java 中做到这一点。当我这样声明时
String template = "There <#if dogNames?size\">\"1>is<#else>are</#if> dogNames?size dog<#if dogNames?size>1>s</#if>";
Run Code Online (Sandbox Code Playgroud)
并调用了freemarker api,我收到了异常
freemarker.core.ParseException: Syntax error in template ...:
Encountered "\">\"", but was expecting one of:
"."
".."
<DOT_DOT_LESS>
"..*"
"?"
"??"
"!"
"["
"("
">"
<TERMINATING_EXCLAM>
Run Code Online (Sandbox Code Playgroud)
我正在使用 freemarker 2.3.28,java 8
你可以写<#if dogNames?size gt 1>。(见https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_comparison)