Синтаксис Freemarker для формы для коллекции объектов (Spring 3 MVC) - PullRequest
5 голосов
/ 17 ноября 2010

У меня есть командный компонент (FooList), у которого есть свойство, представляющее собой коллекцию (List из Foo бобов).

Я пытаюсь создать форму, которую можно редактироватьвсе Foo с одновременно.Я нашел много примеров того, как сделать это с помощью JSP, но у меня возникают проблемы с переводом их в синтаксис Freemarker.

В моем шаблоне Freemarker я могу легко перебирать коллекцию:

[#list fooList.foos as foo]
...
[/#list]

Я также могу сослаться на определенный Foo по индексу:

[@spring.bind "fooList.foos[0].name" /]
<input type="text" name="${spring.status.expression}" value="${spring.status.value?default('')}"/>

Однако я еще не понял, как я могу сделать оба одновременно, чтобы связать все Foo s для формирования элементов.

Вот одна наивная попытка, которая не удалась:

[#list fooList.foos as foo]
    [@spring.bind "fooList.foos[foo_index].name" /]
    ...
[/#list]

(Сам по себе ${foo_index} работает внутри цикла.)

Может кто угоднонаправить меня в правильном направлении?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 21 декабря 2010

Просто была такая же проблема. Это сработало для меня:

[#list fooList.foos as foo]
  <#assign item>fooList.foos[${foo_index}].name</#assign>
  [@spring.bind item /]
  ...
[/#list]
1 голос
/ 17 ноября 2010

Try,

[#list fooList.foos as foo] 
    [@spring.bind "foo.name" /] 
    ... 
[/#list] 

foo в этом примере будет ссылаться на каждый элемент списка один за другим, согласно документации freemarker на директива list .

0 голосов
/ 18 августа 2015

Я думаю, что это должно быть следующим:

[#list fooList.foos as foo]
    [@spring.bind "fooList.foos[" + foo_index + "].name" /]
    ...
[/#list]
...