Java 在Freemarker中迭代HashMap

Java 在Freemarker中迭代HashMap,java,freemarker,Java,Freemarker,如何在Freemarker中迭代hashmap。我使用的是2.3.23版本,无法从hashmap中获取值。我正在使用以下工具: <#list hashMap?keys as key> ${key} = ${hashMap.get(key)} <#list> <#list hashMap?keys as key> ${key} = ${hashMap[key]} <#list> ${key}=${hashMap.get(key)} 我

如何在Freemarker中迭代hashmap。我使用的是2.3.23版本,无法从hashmap中获取值。我正在使用以下工具:

<#list hashMap?keys as key>
  ${key} = ${hashMap.get(key)}
<#list>
<#list hashMap?keys as key>
  ${key} = ${hashMap[key]}
<#list>

${key}=${hashMap.get(key)}
我甚至尝试过以下方法:

<#list hashMap?keys as key>
  ${key} = ${hashMap.get(key)}
<#list>
<#list hashMap?keys as key>
  ${key} = ${hashMap[key]}
<#list>

${key}=${hashMap[key]}
它表示该值为null。但是,我检查了数据,每个键都有一个值。我无法将freemarker版本升级到2.3.25


有人能帮我一下吗。

通常,问题是您的键不是
字符串,而是一些Java对象,而不仅仅是数字/日期/布尔值。这样的“杂项”对象可用作FTL字符串,因此您可以直接打印它们(并在内部调用
obj.toString()
)。因此,
hashMap[key]
不会抱怨
key
不是FTL字符串(因为它是),相反,它基本上是
hashMap.get(key.toString())
,这样就有了
null

由于您无法更新到2.3.25,您可以使用
,因此必须使用
?api
(我希望您可以在配置中启用调用
?api
):


${ent.key}=${ent.value}

哪种类型有您的hashmap?