Map<String, String> model = new HashMap<String, String>();
model.put("A", "1");
model.put("b", "2");
model.put("c", "3");
try{
content.append(FreeMarkerTemplateUtils.processTemplateIntoString(configuration.getTemplate(ftlName), model));
...
Ftl 文件如下所示:
<html><head></head><body>
${model["A"]}
<#list model?keys as prop>
${model[prop]}
</#list>
</body>
</html>
无论我收到错误:
Expression model is undefined on line 6, column 3 in vslEmail.ftl.
The problematic instruction:
----------
==> ${model["A"]} [on line 6, column 1 in vslEmail.ftl]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression model is undefined on line 6, column 3 in vslEmail.ftl.
如果我删除仅使用列表指令访问model
的尝试,我会得到同样的错误...任何帮助表示赞赏
最佳答案
如果其他人像我一样愚蠢地困惑,你必须在 FTL 中这样做:
<html><head></head><body>
${A}
</body>
</html>
或者将 A 设为 HashMap 而不是字符串,然后循环遍历它,而不是“顶部”模型对象。
关于java 将 hashmap 发送到 Freemarker 模板无法正常工作,未定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10244488/