Может ли выражение свободного маркера содержать пробел - PullRequest
0 голосов
/ 17 января 2019

У нас есть такой сценарий, как входные данные выражения Freemarker содержат пробелы в переменной $ {employee name?} И получают ошибку ниже

"Exception in thread "main" freemarker.core.ParseException: Encountered "name" at line 1, column 12 in EMAILTEMPLATES "при применении выражения.

Поддерживает ли Freemarker пробел в переменной свободного маркера?

    Map<Object,Object> out= new HashMap<>();
    out.put("employee name", "XXX");
    String templateStr="<p> ${employee name?} </p>";

    StringWriter out = new StringWriter();
    Template emailTemplate = new Template(EMAILTEMPLATES, new 
    StringReader(templateStr),templateConfiguartion);

    emailTemplate.process(dataMap, out);

1 Ответ

0 голосов
/ 17 января 2019

Вы можете использовать vars для специальных переменных:

${.vars["employee name"]}

vars: выражение .vars.foo возвращает ту же переменную, что и выражение foo. Это полезно, если по некоторым причинам вам нужно использовать синтаксис в квадратных скобках, поскольку он работает только для хеш-переменных, поэтому вам нужен искусственный родительский хеш. Например, чтобы прочитать переменную верхнего уровня со странным именем, которое могло бы запутать FreeMarker, вы можете написать .vars ["Странное имя!"].

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