有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从Struts2表单提交填充集合

我正在尝试从表单填充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) 个答案

  1. # 1 楼答案

    如果我理解正确的话,你只是想为每个隐藏字段取不同的名称

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