コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

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