ひよっこ。

I want to…

    広告
  • つぶやき。。。

    • 間違って違うワークスペースでヘルプを出してしまった。怖... 19 hours ago
    • うーん、notificationなどで利用するComponent内で限定した(Reactで言う)stateを持ちたいんだけど...。素直にhyperappのstateで保持するか。 1 day ago
    • ふと気になって調べてみたら、ESNextの OptionalChainingはstage1にはいるのか。 github.com/tc39/proposal-… 2 days ago
    • @JorgeBucaran ありがとうございます。ちょっと試してみます。ondestroyのログは取れてたので、 > This event is not called in its child elements. が原因かなと思ってました。 2 days ago
    • SlackってNGOや教育割り引きあったのか。おおよそ85%オフとのこと get.slack.help/hc/ja/articles… 2 days ago
  • archive

  • ジャンル

  • tag

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人のブロガーが「いいね」をつけました。