freemarker ,更新 hashmap 的方法

freemarker , ways to update hasmap

我最近开始研究 ftl freemarker。 我使用 #assign 创建了一个 hasmap。

更新此 hashMap 的值的推荐方法是什么?

数据结构(地图、列表等)在 freemarker 中是不可变的吗?

<#assign hashMap1= { "name": "mouse", "price": 50 } >
hashMap1.name = "cat";  // gives error
<#assign hashMap1= hashMap1 + {"name": "cat"} /> // this works fine , but I don't like this approach. it gives false sense of adding keys where we are updating keys.

我试过这里freemarker builtins,但是没有这方面的信息。

FTL实际上不支持修改数据结构。 (它不是一种通用的脚本语言,只是一种模板语言。)使用 hashMap1 = hashMap1 + {"name": "cat"} 你不是在更新现有的散列,而是在创建一个包含新密钥的新散列。出于这个原因,我也不建议这样做太多次,因为它会变慢(尤其是生成的哈希)。

如果你真的需要从模板更新Map-s,你必须给模板一个真正的JavaMap,并使用?api访问Java的MapAPI.