在freemarker中迭代hashmap

5fjcxozz  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(322)

如何在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>

它表示该值为空。但是,我检查了数据,每个键都有一个值。我无法将freemarker版本升级到2.3.25
有人能帮我一下吗。

bweufnob

bweufnob1#

通常,问题是你的钥匙 String -s、 但是有些java对象不仅仅是数字/日期/布尔值。这样的“杂项”对象可用作ftl字符串,因此您可以直接打印它们(并在内部调用它们) obj.toString() ). 因此 hashMap[key] 不会抱怨的 key 不是ftl字符串(因为它是),而是基本上是 hashMap.get(key.toString()) ,然后你就有了你的 null .
因为你不能更新到2.3.25,在那里你可以使用 <#list hashMap as key, value> ,你必须使用 ?api (我希望你能给我打电话 ?api 在配置中):

<#list hashMap?api.entrySet() as ent>
  ${ent.key} = ${ent.value}
</#list>

相关问题