我有一个课程MyClass
,如下所示
public class MyClass {
private int fieldOne; //with getter, setter
private String fieldTwo; //with getter, setter
}
我在表单bean中有以下两个字段
private MyClass myObject; //with getter, setter
private ArraList<MyClass>myList; //with getter, setter
使用struts1我想从网页表单提交对象和对象列表。
在struts2中,我们可以按下面的方式获取对象和列表(考虑字段不在动作类而不是表单bean)。提交以下字段后,struts2会根据提交的值为我发起myObject
和myList
。 (参数Interceptor是struts2中幕后的魔术师。)
<!-- Object -->
<input type="text" name="myObject.fieldOne" value="1" />
<input type="text" name="myObject.fieldTwo" value="Two" />
...
<!-- List -->
<input type="text" name="myList[0].fieldOne" value="1" />
<input type="text" name="myList[0].fieldTwo" value="Two" />
<input type="text" name="myList[1].fieldOne" value="10" />
<input type="text" name="myList[1].fieldTwo" value="Twenty" />
有没有办法在struts1中执行这样的魔术?
答案 0 :(得分:1)
AFAIR,同样适用于Struts1,前提是表单bean中的列表包含一个已经具有正确大小的列表。即如果最后一个输入文本的名称为myList[7].fieldOne
,则列表的大小应至少为8,因此预先填充8 MyClass
个实例。 STruts只会执行formBean.getMyList().get(7).setFieldOne(10)
。
有关详细信息,请参阅http://struts.apache.org/development/1.x/struts-taglib/indexedprops.html。