2011-02-01 80 views
1

我有一個複雜的對象,是由許多另一種類型的對象組成的。作爲一個例子,我們假設我有一個用戶類型,並且每個用戶對象包含許多地址實例。地址包含房屋號碼(int)和街道名稱(字符串)。我想製作一個表單來編輯該用戶對象及其所有地址。我怎麼做?我知道如果用戶有一個地址,我會怎麼做。它看起來像下面這樣(假設適當的getter和setter):Struts2 - 編輯複合對象

//In the JSP 
<s:textfield name="user.address.houseNumber/> 

//In the Action 
void setUser(User user) {...} 

奇妙的是,用戶對象將與新的門牌號碼提交。但是,如何編輯上面列舉的對象集合?我是否必須在某處更改輸入標籤的名稱,並在用戶類型上使用一些特殊名稱的setter?

回答

1

如果setters target是一個列表或數組,您可以發送多個具有相同名稱的參數,並將它們添加到列表中。如果有意義的話,你也可以使用數組符號插入特定位置。

作爲一個例子,這應該工作:

user[x].address[y].houseNumber 

如果目標是一個地圖,則x和y都必須是合適的密鑰。更少的東西你在JSP中使用什麼來訪問嵌套組件。