Проблема разбора [#if ??]
Некорректно работаeт FreeMarker.
Указал:
setInterpolationSyntax(Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX)
...
<h1>Welcome [=user]!</h1>
<p>Our latest product:
<a href="[=latestProduct.url]">[=latestProduct.name]</a>
<h3>[#if latestProduct.serviceName??] Exist config_fp_name: '[=latestProduct.serviceName]' [/#if]</h3>
...
</html>
В результате конструкция частично отрабатывается, однако if игнорируется (с синтаксисом треугольных скобок <if ??> такой проблемы нет):
<h1>Welcome Big Joe!</h1>
<p>Our latest product:
<a href="products/greenmouse.html">green mouse</a>
<h3>[#if latestProduct.serviceName??] Exist config_fp_name: 'serviceName' [/#if]</h3>
Почему так?
Ответы (1 шт):
setInterpolationSyntax влияет только на интерполяцию переменных, то есть это только для того, чтоб указать какой синтаксис для переменных использовать: [=x] или ${x}.
Для тегов (типа if) используйте setTagSyntax:
setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX);
В документации это описано:
the interpolation syntax can be configured to be like [=x] instead of ${x}. Also, independently of that, the FreeMarker tag syntax can be configured to use [], like in [#if x]...[/#if].