7.10.3. Bean ValidationとNablarch Validationの機能比較

ここでは、Nablarchの提供するバリデーション機能と JSR349(外部サイト、英語) の機能比較を示す。

機能比較(○:提供あり △:一部提供あり ×:提供なし -:対象外)
機能 Bean
Validation
Nablarch
Validation
JSR 349
バリデーション対象の項目を指定できる [1]
解説書へ
階層構造を持つJava Beansオブジェクトに
対してバリデーションできる
[2]
解説書へ
メソッドの引数、戻り値に対してバリデーションできる × [3] × [3]
相関バリデーションができる
解説書へ

解説書へ
バリデーションの実行順序を指定できる × [4]
解説書へ
特定の項目の値を条件に
バリデーション項目を切り替えることが出来る
[5]
解説書へ
エラーメッセージに埋め込みパラメータを使用できる [6]
解説書へ

解説書へ
ドメインバリデーションができる
解説書へ

解説書へ
×
値の型変換ができる × [7]
解説書へ
×
値の正規化ができる × [8]
解説書へ
×
エラーメッセージに項目名を埋め込むことができる
解説書へ

解説書へ
×
[1]Formの全ての項目に対してバリデーションを行うことで、不正な入力値の受付を防ぐことが出来る。
このため、Bean Validationでは、項目指定のバリデーション実行は推奨していない。
どうしても指定の項目に対してのみバリデーションを行いたい場合には、 ValidatorUtil#validate を使用すること。
[2]対応方法は、 JSR349(外部サイト、英語) の仕様に準拠する。
[3](1, 2) Nablarchでは外部からデータを受け付けたタイミングで必ずバリデーションを行うため、 メソッドの引数や戻り値に対するバリデーションには対応していない。
[4]バリデーションの実行順は制御できないため、バリデーションの実行順序を期待するような実装は行わないこと。 例えば、項目毎のバリデーション後に相関バリデーションが実行されるといったことを期待してはならない。
[5]JSR349(外部サイト、英語) のクラスレベルのバリデーション機能を使用して、ロジックによりバリデーション項目を切り替えること。
[6]Bean Validationでは、EL式を使用してパラメータを埋め込むこともできる。
[7]Bean Validationでは、プロパティの型は全てStringとして定義する(Stringで定義する理由)ため型変換は行わない。 型変換が必要な場合には、バリデーション実施後に BeanUtil を使って型変換する。
[8]正規化は、Bean Validationの機能ではなくハンドラとして提供している。正規化が必要な場合には、 ノーマライズハンドラ を使用して行う。