【问题标题】:Populate Collection from Struts2 Form Submission从 Struts2 表单提交中填充集合
【发布时间】:2009-06-10 14:18:04
【问题描述】:

我正在尝试从表单中填充 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" />

但这不起作用并且会导致冲突。我确定答案很简单,我忽略了它。

【问题讨论】:

    标签: java struts2 struts


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

    【讨论】:

    • 您说得对,先生。我想我根本不知道正确的语法(即 [0])。
    • 谢谢...!它也帮助了我......(即使在 2 年后 :-P)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2014-12-25
    • 2012-12-07
    • 1970-01-01
    • 2023-03-29
    • 2013-11-01
    • 2018-10-08
    相关资源
    最近更新 更多