2016-08-06 4 views
0

私はWebSphere 5.1.2を使用しています。それはStruts 1だと思いますが、わかりません。Strutsは私のゲッターメソッドを使用していません

私の問題は次のとおりです。

私は自分のフォームに、入力タイプのテキストを持つBean BeanNameの動的リストを持っています。

私のフォームは、この(それがインターネットなしで仮想マシン上にあるので、&ペーストをコピーすることはできません)のようなものです:

public class MyForm extends ActionForm implements Serializable { 
    // Property 
    private List beanNameList = new ArrayList(); 

    // Simple Getter 
    public List getBeanNameList() { 
     if (beanNameList == null) { 
      beanNameList = new ArrayList(); 
     } 
     return beanNameList ; 
    } 

    // Item Getter 
    public BeanName getBeanNameList(int index) { 
     if (beanNameList == null) { 
      beanNameList = new ArrayList(); 
     } 
     for (int i = beanNameList.size(); i <= index; i++) { 
      beanNameList.add(new BeanName()); 
     } 
     return (BeanName)contractList.get(index); 
    } 

    // Simple Setter 
    public List setBeanNameList(List value) { 
     return beanNameList = value; 
    } 

    // Item Setter 
    public BeanName getBeanNameList(int index, BeanName value) { 
     if (beanNameList == null) { 
      beanNameList = new ArrayList(); 
     } 
     for (int i = beanNameList.size(); i <= index; i++) { 
      beanNameList.add(new BeanName()); 
     } 
     contractList.set(index, value); 
    } 
} 

私がフォームを送信すると、私ははIndexOutOfBoundsExceptionを受け取る:インデックス:3、サイズ:コンソールをAnalizing 0

、私はあなたが画像で見ることができるようStrutsのは、getBeanNameListをArrayList.getを使用し、されていません実現:

console error

アイデア?

のStrutsの私のバージョンが古すぎる、そしてそれは本当にsigantureにインデックスを持つゲッターとセッターを使用していない

+0

範囲エラーが発生しているようです。 **あなたが持っている**については、これらをチェックすることをお勧めします。彼らは皆あなたの誤りの原因となる素晴らしい候補者です。チェックポイントといくつかのデバッグは間違いなくあなたがエラーを見つけるのを助けるでしょう。 –

+0

Replly edに感謝しますが、これが問題です。そこにブレークポイントを設定しても、それは止まらない。 –

+0

私は、List getter "getBeanNameList()"にブレークポイントを設定し、それを停止しますが、単純なゲッターではありません "public BeanName getBeanNameList(int index)" –

答えて

1

私は問題を発見した...、それはArrayList.get、またはそのような何かを使用しています。

問題を解決するために、私は私のリストのサイズで隠しフィールドを作成し、フォームのリセットメソッドでは、私はちょうどリストのサイズを設定しました。

関連する問題