从Struts2表单提交填充集合

时间:2009-06-10 14:18:04

标签: java struts2 struts

我正在尝试从表单中填充一个bean列表:

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 个答案:

答案 0 :(得分:12)

如果我理解正确,你只需要为每个隐藏字段命名不同的名称?

<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" />

如果你有正确的getter / setter,它应该在提交表单时设置所有值。

相关问题