Freemarker表达式可以包含空格吗

时间:2019-01-17 06:44:13

标签: freemarker

我们有这样一种情况,例如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 :(得分:2)

您可以将vars用于特殊变量:

${.vars["employee name"]}
  

vars:表达式.vars.foo返回与表达式foo相同的变量。如果由于某些原因必须使用方括号语法,则该选项很有用,因为该语法仅适用于哈希子变量,因此您需要一个人工父哈希。例如,要读取一个具有使FreeMarker混淆的奇怪名称的顶级变量,可以编写.vars [“一个奇怪的名称!”]。