2013-04-10 45 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瞭解更多詳情。