2013-04-10 44 views
0

我有一个类MyClass如下提交对象,并列出了Struts1

public class MyClass { 
    private int fieldOne;  //with getter, setter 
    private String fieldTwo;  //with getter, setter 
} 

我已经按照我的form bean两场

private MyClass myObject;   //with getter, setter 
private ArraList<MyClass>myList;  //with getter, setter 

使用struts1的我要提交的对象和对象的名单由网页形式。

在struts2中,我们可以像下面那样获取对象和列表(注意字段不在操作类而不是表单bean中)。当提交下面的字段时,struts2使用提交的值为我启动myObjectmyList。 (参数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中进行这样的魔力?

回答

1

AFAIR,如果您的表单bean中的列表包含一个已经具有正确大小的列表,那么在Struts1中同样可行。即如果最后一个输入文本的名称为myList[7].fieldOne,则该列表的大小至少应为8,因此应预先填入8 MyClass个实例。 STruts只会做formBean.getMyList().get(7).setFieldOne(10)

请参阅http://struts.apache.org/development/1.x/struts-taglib/indexedprops.html了解更多详情。