Как напечатать любую переменную в FreeMarker? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть Map<String, Object>, который содержит строки, двойные числа, целые числа, логические значения и null (отсутствует) в качестве значений. Я хочу распечатать значение в шаблоне FreeMarker.

Когда я использую ${data[field]!?html}, он работает для всех других переменных, но выдает ошибку в Boolean с:

freemarker.core._MiscTemplateException: Can't convert boolean to string automatically, because the "boolean_format" setting was "true,false", which is the legacy default computer-language format, and hence isn't accepted.

Приложение представляет собой административный интерфейс, где меня не особо заботит точное форматирование, но я бы предпочел, чтобы логические выражения использовали стандартные true и false. (Флаг boolean_format контролирует стандартное форматирование логических значений, но использование true и false, по-видимому, явно запрещено по некоторым ошеломляющим причинам.)

Какой лучший способ обойти запрет FreeMarker?

Ответы [ 2 ]

0 голосов
/ 19 августа 2019

Начиная с FreeMarker 2.3.29, вы можете установить для параметра конфигурации boolean_format значение c, которое будет форматировать логические значения как ?c, true и false.

0 голосов
/ 18 сентября 2018

Чтобы достичь этого, используйте метод ?string: ${data[field]!?string?html}

Это упоминалось только в Configurable JavaDoc , а метод ?string устарел . Я надеюсь, что это не исчезнет в любое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...