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的Map
API.
我最近开始研究 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的Map
API.