如何检查该数组在 Apache FreeMarker 中的大小 > 1?

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