Spring MVC 4.0 No. 013 ValidatorでDecimalのチェック
今回からしばらくBean Validationの標準のValidatorの説明をしていきます。最初はDecimalMax、DecimalMinの2つです。
DecimalMaxとDecimalMinはその名の通り、数値の最大と最小をチェックします。また、inclusive属性をtrue/falseにすることで、値自体を含む、含まないかを選択できます。
Bookのpriceフィールドに値を設定します。以下の例だと1〜100000未満だけ入力が許されます。
@NotNull private String name; @NotNull @DecimalMin("1") @DecimalMax(value = "100000", inclusive = false) private Integer price;
DecimalMaxとDecimalMinのメッセージを用意します。
javax.validation.constraints.DecimalMax.message = {0}は{value}${inclusive == true ? '以下の' : 'より小さい'}数を入力してください javax.validation.constraints.DecimalMin.message = {0}は{value}${inclusive == true ? '以上の' : 'より大きい'}数を入力してください
メッセージでは、{value}でValidationする値をメッセージに埋め込むことができます。また、EL 3.0による処理でinclusiveの値によってメッセージを変えています。ELが使えることによって、かなり柔軟なメッセージ表示が可能になっています。
ソースは https://github.com/kuwalab/spring-mvc40 にあります。タグ013が今回のサンプルです。
まとめ http://kuwalab.hatenablog.jp/entry/spring
最初 http://kuwalab.hatenablog.jp/entry/spring_mvc/001
前回 http://kuwalab.hatenablog.jp/entry/spring_mvc/012
次回 http://kuwalab.hatenablog.jp/entry/spring_mvc/014