ひよっこ。

I want to…

BeanValidatorの使い方メモ(Spring?)

Posted by hikaruworld : 2010 12月 24

なーんだか、使い始めでたまに勘違いする(lengthとかsizeとか)のでメモっておきます。
BeanValidatorの使い方。JSR-303ですね。

ざっくり一覧

取りあえずざっくりですが。

javax.validation

@AssertFalse 常にFalseであることを検証する
@AssertTrue 常にtrueであることを検証する
@DecimalMax 最大値の検証。BigDecimalだけじゃなくて、intやラッパークラス、StringもOK
@DecimalMin 最小値の検証。上に同じ
@Digits 桁数の検証。integerで整数部分、fractionで少数部分を指定可。これも上に同じでintとかでも使える
@Future 現在時間より未来時間であることの検証。null可。Date型Calendar型がOK。現在時間は比較時のnew Date()(あるいはCalendar.getInstance())をafterで比較してる
@Past 現在時間より過去時間であることの検証。null可。Date型Calendar型がOK。現在時間は比較時のnew Date()(あるいはCalendar.getInstance())をbeforeで比較してる
@Max 最大値の指定。50を指定しておくと60とか渡した場合にエラーになる。intだけじゃなく…以下省略
@Min 最小値の指定。
@NotNull nullでないことを検証する
@Null nullであることを検証する
@Pattern 正規表現にマッチすることを検証。regexp以外にflagも設定可能
@Size 大きさの検証。Stringのlength以外に、Collection系のsize()も検証可能。最小値と最大値を指定可能

hibernateValidator

こっちはjavadocないんだよね…

@Email メールアドレスの検証。実装はPatternのmatcherで。実際のパターンは下記参照
@Length @Minと@Maxに同じ?
@NotEmpty @NotNullに同じ?

@Emailの実装EmailValidator

こんな感じ。まだ完全にではないよう。

	//TODO: Implement this http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html regex in java
	private static String ATOM = "[^\\x00-\\x1F^\\(^\\)^\\<^\\>^\\@^\\,^\\;^\\:^\\\\^\\\"^\\.^\\[^\\]^\\s]";
	private static String DOMAIN = "(" + ATOM + "+(\\." + ATOM + "+)*";
	private static String IP_DOMAIN = "\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\]";

補足

あ、上記のリソースに日本語のメッセージは入っていないので、ValidationMessages_ja.properties辺りを作ってクラスパス上においておきます。
ちなみに元ファイルは、hibernate-validator-4.0.2.GA.jarのorg.hibernate.validator配下のValidationMessages.propertiesにおいてあります。

なお、ソースはこちら

以上です。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。