Я пытаюсь реализовать шаблон с объектом, который может быть во множественном числе.
Например: "Есть / есть n собак".Когда я пытался There <#if dogNames?size>1>is<#else>are</#if> dogNames?size dog<#if dogNames?size>1>s</#if>
, я получал исключение
freemarker.core.NonBooleanException: для условия "#if": ожидалось логическое значение, но оно было оценено как число (wrapper: ftSimpleNumber): ==> dogNames? size
т.е. есть проблема с угловой скобкой, используемой для сравнения.
В этом блоге сказано, что двойных кавычек достаточно дляизбежать скобки, но мне не удалось сделать это на Java.Когда я объявил это так
String template = "There <#if dogNames?size\">\"1>is<#else>are</#if> dogNames?size dog<#if dogNames?size>1>s</#if>";
и вызвал api freemarker, я получил исключение
freemarker.core.ParseException: Syntax error in template ...:
Encountered "\">\"", but was expecting one of:
"."
".."
<DOT_DOT_LESS>
"..*"
"?"
"??"
"!"
"["
"("
">"
<TERMINATING_EXCLAM>
Я использую freemarker 2.3.28, java 8