2011-10-29 43 views
1

Spring表單標籤我有2類像下面,嵌套豆

public class CheckInBean implements Serializable{ 

private String user; 
private Date checkInDate; 
private List<ItemBean> items; 


..followed by getters and setters 

public class ItemBean implements Serializable{ 

private static final long serialVersionUID = 1L; 

private int itemId; 
private String barcode; 
private String description; 
private int minimalCount; 
private int initialCount; 
private int actualCount; 
private String location; 

    ... followed by getters and setters 

我用spring表單標籤有一個jsp頁面。

我需要爲列表輸入日期和多個ItemBean值(在同一頁上有多個)。我不知道如何做到這一點,我只是閱讀在stackoverflow中使用Propertyeditor的地方,但我不知道它是否適合我的要求。請建議。

我爲使用Spring 3

感謝名單

回答

1

那麼,什麼happends還有就是,如果你提交與一個或多個ItemBeans數據表單,Spring MVC的將嘗試映射這些值現有ItemBean實體。如果您的CheckInBean實例中的ItemBeans列表爲null/empty,則Spring MVC將引發錯誤。有許多東西可以做,以防止這種情況:

  • 讓自己實現java.util.List(可以覆蓋ArrayList爲例),改變get(int position)方法,這樣,這就是所謂的一定位置,通常這個位置會返回null,你首先創建一個新實例,將它放在(super)列表中的那個位置,然後返回它。這是一種黑客攻擊,但如果您可能需要較大的ItemBean實例間隔(例如您可能需要3個或您可能需要400個),那麼這很好,因爲它只會創建所需的實例並且不會過度污染內存。

  • 您可以使用預定義的空項是用戶可以添加到您的使用形式的豆ItemBean實例的最大數量的預填充內CheckInBean ItemBeans名單。這比上面的選擇少一些,但它往往是浪費記憶的方式。如果您有一個可以添加到CheckInBean的最大數量的ItemBean,那就沒關係。