Проблема разбора [#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 шт):

Автор решения: Roman Konoval

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].

→ Ссылка