java 将 hashmap 发送到 Freemarker 模板无法正常工作,未定义参数

标签 java spring freemarker

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/

相关文章:

java - 导航菜单中不同帐户类型的不同菜单

html - 替换 freemarker 中的换行符

java - com.microsoft.sqlserver.jdbc.SQLServerException : The index 2 is out of range :(

java - 如何制作一个像网络中那样的特定组合框?

spring - 为什么JPA可以保存我的实体但不能删除该实体?

java - 我可以创建一个 spring bean 作为我的 cucumber 步骤定义的一部分吗?

java - 为什么 Calendar.before() 和 Calendar.after() 接受对象值?

java - 彼此相邻的 float 表格

java - 一个 bean 中的作用域单例以及其他依赖 bean 的原型(prototype)

caching - 如何在 Spring MVC 中禁用 freemarker 缓存