Freemarker, выходящий из freemarker - PullRequest
       34

Freemarker, выходящий из freemarker

5 голосов
/ 29 октября 2009

Я использую freemarker для создания шаблона freemarker. Но мне нужен какой-то способ избежать тегов freemarker.

Как мне избежать тега <#list> или ${expression}?

Ответы [ 4 ]

8 голосов
/ 02 марта 2011

Вы также можете использовать: ${"$"}{expression}, если вложение {} вызывает путаницу.

7 голосов
/ 29 октября 2009

Я использую альтернативный синтаксис . Я запускаю шаблон с [#ftl] и использую этот синтаксис.

Для выражений я использую строковый литерал: ${r"${expression}"}

0 голосов
/ 05 апреля 2018

Вы можете настроить FreeMarker для использования [=exp] вместо ${exp} (начиная с 2.3.28) и [#...] / [@...] вместо <#...> | <@...>, установив interpolation_syntax и tag_syntax настройка конфигурации на square_bracket (в Java API: Configuration cfg; ... cfg.setInterpolationSyntax(Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX) и cfg.setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX)). Тогда синтаксис не конфликтует с синтаксисом по умолчанию.

Есть один сложный случай; если шаблон начинается с <#ftl>, он переключит синтаксис тега обратно на angle_bracket. Чтобы противостоять этому, просто добавьте [#ftl] строку перед ним.

Смотри также: https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.html

0 голосов
/ 15 января 2014

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

Представьте, что вы хотите использовать строку $ {Hello} - "Друг моего друга" внутри строки. Вы не можете сделать это с необработанными строками. То, что я использовал, это работает:

${"\x0024{Hello}-\"My friend's friend\""}

Я не избежал апострофа, так как использовал двойные кавычки.

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