如何将缺少条目的自定义对象数组发布到Struts2操作

时间:2013-12-07 07:54:43

标签: java html struts2 type-conversion xwork

Tabular Inputs当数组的大小未知时,建议使用XWorkList代替ArrayList&两者之间存在差距。

XWorkList不是通用的&根据{{​​3}}

,它没有空的构造函数

我的问题是如何使用XWorkList或有没有办法提交列表中缺少某些项目的bean列表?

示例Html:

<input name="lst[0].name"/>
<input name="lst[3].name"/>
<input name="lst[4].name"/>

2 个答案:

答案 0 :(得分:0)

List合同是有序集合。它不能缺少任何缺失。关于XWorkList它只是列表的另一个实现,能够通过填充所需元素的间隙来为指定的索引创建新元素。对add(int, Object)

的说法是什么
  

将指定元素插入此列表中的指定位置。   移动当前位于该位置的元素(如果有)和任何元素   右边的后续元素(在其索引中添加一个)。   这种方法可以保证工作,因为它会创建空豆   填补当前列表大小和请求索引之间的差距   启用元素设置。

在列表中创建新bean的另一种方法是使用type conversion。或者使用this回答中的注释。

答案 1 :(得分:0)

它正在扩展ArrayList并且有一个带Class的构造函数。因此你会改变:

List<String> foo = new ArrayList<String>();
foo.add("bar");
foo.add("");
foo.add("");
foo.add("foobar");
foo.add("barfoo");

成:

List<String> foo = new XWorkList(String.class);
foo.add("bar");
foo.add(3, "foobar");
foo.add(4, "barfoo");