Заполнить коллекцию из представления формы Struts2 - PullRequest
5 голосов
/ 10 июня 2009

Я пытаюсь заполнить список бинов из формы:

public class Foo {
   public String attr1;
   public String attr2;
}

public class Bar {
   public List<Foo> foos;
}

public class StrutsAction extends Action {
   public Bar bar;
}

Итак, в моем виде в Struts2, как лучше всего заполнить Foo? Интуитивно я хочу сделать:

<input type="hidden" name="bar.foos.attr1" />

но это не работает и может вызвать столкновения. Я уверен, что ответ очень прост, и я пропускаю его.

1 Ответ

12 голосов
/ 10 июня 2009

Если я правильно понимаю, вы просто хотите другое имя для каждого скрытого поля?

<s:iterator value="bars" status="key">
    <s:hidden name="bar.foos[%{#key.index}].attr1" value="attr1" />
    <s:hidden name="bar.foos[%{#key.index}].attr2" value="attr2" />
</s:iterator>

, что должно дать вам эквивалент

<input type="hidden" name="bar.foos[0].attr1" value="some value" />
<input type="hidden" name="bar.foos[0].attr2" value="some other value" />
<input type="hidden" name="bar.foos[1].attr1" value="some value" />
<input type="hidden" name="bar.foos[1].attr2" value="some other value" />

Если у вас есть правильный метод получения / установки, он должен установить все значения при отправке формы.

...