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

问题描述 投票:0回答:2

表格输入。这建议当数组的大小未知且数组之间存在间隙时,使用

XWorkList
而不是
ArrayList

但是根据

文档
XWorkList不是通用的,并且它没有空构造函数。

我的问题是,如何使用

XWorkList
,或者有什么方法可以提交列表中缺少某些项目的bean列表?

示例 HTML:

<input name="lst[0].name"/>
<input name="lst[3].name"/>
<input name="lst[4].name"/>
java html struts2 type-conversion xwork
2个回答
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");

0
投票

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

在此列表中的指定位置插入指定元素。 移动当前位于该位置的元素(如果有)和任何 右侧的后续元素(为其索引加一)。 此方法保证有效,因为它将创建空 bean 填充当前列表大小和请求索引之间的差距 启用要设置的元素。

在列表中创建新 bean 的另一种方法是使用 类型转换。或者使用像this答案中那样的注释。

© www.soinside.com 2019 - 2024. All rights reserved.