我们有这样一种情况,例如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);
答案 0 :(得分:2)
您可以将vars用于特殊变量:
${.vars["employee name"]}
vars:表达式.vars.foo返回与表达式foo相同的变量。如果由于某些原因必须使用方括号语法,则该选项很有用,因为该语法仅适用于哈希子变量,因此您需要一个人工父哈希。例如,要读取一个具有使FreeMarker混淆的奇怪名称的顶级变量,可以编写.vars [“一个奇怪的名称!”]。