1

フォーム入力テキストを、フォームがバインドされている Bean の整数フィールドにバインドする際に問題があります。入力テキストに間違った数字 (例: "12b") を書き込むと、バインド例外が発生します。したがって、次の方法でコントローラーに @InitBinder を設定します。

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Integer.class, new CustomIntegerBinder());
    }

CustomIntegerBinder は次のように実装されます。

    public class CustomIntegerBinder extends PropertyEditorSupport {

        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            try {
                setValue(Integer.parseInt(text));
            } catch (Exception e) {
                //I WANT TO ADD ERROR TO THE ERROR LIST!
            }
        }

        @Override
        public String getAsText() {
            return getValue().toString();
        }
    }        

私の質問は、エラー リストにメッセージ エラーを追加して、変換エラーによってアプリケーションがクラッシュするのではなく、jsp の「エラー」タグにメッセージが出力されるようにするにはどうすればよいかということです。

ありがとうございました!

4

1 に答える 1

0

テキストから値を設定できない場合、メソッドは(メソッドシグネチャが示すように)をsetAsTextスローする必要があります。IllegalArgumentException

IllegalArgumentExceptionあなたがあなたから投げた場合catch、Springはあなたのためにエラーを追加するはずです。

于 2012-07-31T08:23:37.503 に答える