Я использую Freemarker 2.3.28 в приложении Spring и Freemarker. У меня проблема с получением логических значений, работающих с макросами freemarker.
Я получаю JSON со стороны сервера, который имеет один атрибут как логический (проверяется с помощью функции JS typeof). Я помещаю эти данные в шаблон, используя:
<script id="data-template" type="text/x-handlebars-template">
<@customData var1="{{var_id}}" var2="{{var_label}}" var3="{{var_enabled}}" />
</script>
var3 в этом выражении приходит как логическое значение, которое я хочу использовать для некоторого выражения флажка, чтобы сделать его отмеченным или не отмеченным.
Теперь, когда я использую это как макрос-выражение следующим образом, он не выбирает var3 как логическое значение:
<#macro customData var1 var2 var3>
<div class="checkbox">
<label><input type="checkbox" ${var3?string('checked="true"', ''} />Dummy Label</label>
</div>
</#macro>
Я получаю ошибку при использовании? String:
FreeMarker template error:
For "...(...)" callee: Expected a method, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> var3?string
Если Я использую? Тогда выдает ошибку:
FreeMarker template error:
For "?then(...)" left-hand operand: Expected a boolean, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> var3