我想在将对象传递给FTL宏之前对其进行修改。
所以,我想得到这样的东西:
obj.x = "123";
<@myMacro obj />
我尝试过:
<#local obj.x = "123"/>
和
<#assign obj.x = "123"/>
和
<#setting obj.x = "123"/>
但这些方法都不起作用。
我该如何实现?
答案 0 :(得分:1)
您无法将值分配给Freemarker's sequences
FreeMarker模板语言假定序列(列表,数组等)和哈希(映射,bean等)是不可变的,您不能编写类似<#assign myObj.someProperty ='will not work'>之类的东西或<#assign myList [0] ='将不起作用'>。但是,支持使用+运算符添加序列或哈希以形成另一个值;请参阅有关expressions的章节,并请注意性能后果。
您将需要创建另一个对象并分配相关值