モデル....
@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits")
private int value;
ビーンズファイル....
<mvc:annotation-driven />
コントローラ....
@RequestMapping(value = "/admin/save.htm", method = { RequestMethod.POST })
public ModelAndView saveSection(@Valid @ModelAttribute Section section, BindingResult result) {
if(result.hasErrors()) {
return new ModelAndView("admin/editSection", "section", section);
}
「値」を数値のみに制限するにはどうすればよいですか? 数字以外を入力すると、次のエラーが発生します。
タイプ java.lang.String のプロパティ値を、プロパティ値に必要なタイプ java.lang.Integer に変換できませんでした。ネストされた例外は org.springframework.core.convert.ConversionFailedException: 値 "A" を java.lang.String 型から java.lang.Integer 型に変換できません。ネストされた例外は java.lang.IllegalArgumentException: Unable to parse A です
いくつかの投稿でinitBindingについて言及しているのを見ましたが、それを使用する方法や、それが私を助けるかどうかさえわかりません. これは以前に解決されている必要があります。バインドされる前に数値であることを確認する方法はありますか?
または、誰かが正しい messages.properties エントリを投稿してこのエラーをオーバーライドできれば、それは私にとってもうまくいく可能性があります。
@Pattern を試しましたが、int では機能しません