フォーム入力テキストを、フォームがバインドされている 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 の「エラー」タグにメッセージが出力されるようにするにはどうすればよいかということです。
ありがとうございました!