Изменить свойство объекта через FTL - PullRequest
0 голосов
/ 24 января 2019

Я хочу изменить объект перед передачей его в макрос FTL.

Итак, я хочу получить что-то вроде этого:

obj.x = "123";

<@myMacro obj />

Я пытался:

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

и

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

и

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

но ни один из этих методов не сработал.

Как мне этого добиться?

1 Ответ

0 голосов
/ 24 января 2019

Вы не можете присвоить значения Последовательности Freemarker

Язык шаблонов FreeMarker предполагает, что последовательности (списки, массивы и т. Д.) И хэши (карты, компоненты и т. Д.)) являются неизменяемыми, вы не можете написать что-то вроде <#assign myObj.someProperty = 'не будет работать'> или <#assign myList [0] = 'не будет работать'>.Однако добавление последовательностей или хэшей с оператором + для формирования другого значения поддерживается;см. в главе о выражениях и обратите внимание на последствия для производительности.

Вам потребуется создать еще один объект и присвоить соответствующие значения

...