2011-11-09 4 views
2

<mvc:annotation-driven/>を含むので、複数選択リストボックスの選択をコマンドビーンの対応するリストプロパティにバインドするときに問題が発生しました。 <mvc:annotation-driven/>を導入する前に、正しく動作しました。<mvc:annotation-driven />とコレクションへのバインド

@InitBinder 
public void initBinder(WebDataBinder binder) { 
    binder.registerCustomEditor(List.class, new CustomCollectionEditor(List.class) { 
     protected Object convertElement(Object element) {   
     String fieldName = (String)element; 

     for (Field field : fields) { 
      if (field.getFieldName().equals(fieldName)) 
       return field; 
     } 

     return element; 
     } 
    }); 
} 

以前にリストの選択を表すList<Field>受ける形コントローラにつながる:

は、私は、カスタムコレクションエディタを持っています。しかし、<mvc:annotation-driven/>を使用すると、List<List<Field>>となります。

誰でもこの現象について説明することができますか?

答えて

0

あなたがあなたAnnotationMethodHandlerAdapter<mvc:annotation-driven />を持っている必要があり、その上にカスタムwebBindingInitializerを設定するAnnotationMethodHandlerAdapter独自に作成する場合はこれがそうでない<mvc:annotation-driver />で作成したものがなる、

にも近いが...ではないかもしれませんカスタムバインダーは使用されません。

まだ最後でない場合は移動してください。

それ以外の場合は、バインダー内にブレークポイントを設定して呼び出されているかどうかを確認してください。

+0

ありがとうございます!それは治療を働いた!私は、 ''の下にある 'AnnotationMethodHandlerAdapter'を先頭に入れてスワップして、今すぐすべて素晴らしいです! – Stuart

+0

私はうまく働いている:) 通常の注文は、春の設定でインポートされていないので、それはちょっとあなたです。 –

関連する問題