通过FTL更改对象属性

时间:2019-01-24 13:08:29

标签: macros freemarker

我想在将对象传递给FTL宏之前对其进行修改。

所以,我想得到这样的东西:

obj.x = "123";

<@myMacro obj />

我尝试过:

<#local obj.x = "123"/>

<#assign obj.x = "123"/>

<#setting obj.x = "123"/>

但这些方法都不起作用。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您无法将值分配给Freemarker's sequences

  

FreeMarker模板语言假定序列(列表,数组等)和哈希(映射,bean等)是不可变的,您不能编写类似<#assign myObj.someProperty ='will not work'>之类的东西或<#assign myList [0] ='将不起作用'>。但是,支持使用+运算符添加序列或哈希以形成另一个值;请参阅有关expressions的章节,并请注意性能后果。

您将需要创建另一个对象并分配相关值