2011-10-29 4 views
1

私は春のフォームタグを使用してJSPページを持っている以下のような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 

を持っています。

Listに、複数のItemBean値(複数の同じページに)を入力する必要があります。私はそれを行う方法を私はちょうどstackedflowのどこかでPropertyeditorを使用して読んで、私はそれが私の要件に合っているかどうかわからない。提案してください。

私はまあ、何happendsすると、あなたが一つ以上のItemBeansのためのデータを使用してフォームを送信した場合、Spring MVCのは、既存のItemBeanにそれらの値をマッピングしようとすることがあり春に3

ありがとう

答えて

1

を使用してメートルエンティティ。 CheckInBeanインスタンス内のItemBeanのリストがnull /空の場合、Spring MVCはエラーをスローします。あなたはこれを防ぐために行うことができ、複数のものがあります:

  • java.util.Listの独自の実装を作成します(あなたがたとえばArrayListを上書きすることができます)、それは特定の位置のために呼ばれていたときにするようなget(int position)方法を変更し、通常その位置が希望最初に新しいインスタンスを作成し、それを(super)Listのその位置に置き、それを返します。これはハックのようなものですが、必要なインスタンスを作成し、メモリを過度に汚染しないように、ItemBeanインスタンスの間隔を広げることができれば(3が必要かもしれないし、400が必要かもしれません)良いです。

  • CheckInBean内のItemBeanのリストに、ユーザーがフォームを使用してそのBeanに追加できるItemBeanインスタンスの最大数である事前定義された数の空の項目を事前に設定できます。これは、上記のオプションよりもハックが少なくなりますが、メモリに浪費される傾向があります。 CheckInBeanに追加できるItemBeanの最大数が少なければOKです。

関連する問題