2009-06-10 45 views
5

我试图从一个填充表单Bean的列表:填充收集从Struts2的表单提交

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的形式,什么是填充富的最好方式?直觉上,我想这样做:

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

但这是行不通的,会导致冲突。我相信答案很简单,我可以忽略它。

回答

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,正在提交表单时,应该设置所有的值。

+1

你是对的先生。我想我只是不知道正确的语法(即[0])。 – Droo 2009-06-10 19:13:04