Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


10.4 Bean Validationの機能およびBean Validationの動作

この節では,Bean Validationの機能およびBean Validationの動作について説明します。

Bean Validationの機能を次の表に示します。

表10‒2 Bean Validationの機能

項番

機能

概要

1

入力値の検証

JavaBeanに設定した値を指定したバリデーション定義で検証する機能です。

グループ管理機能

検証をグループ化する機能です。

メッセージ管理機能

検証結果がエラーの場合に返却するメッセージの管理を行う機能です。

ペイロード管理機能

検証結果をカテゴリ分割する機能です。

2

カスタムバリデータ作成機能

独自の検証処理を作成する機能です。

3

ブートストラップ機能

Bean Validationプロバイダを変更できる機能です。

注※

Bean ValidationをJSFと連携して利用した場合,ペイロード管理機能を使用できません。

Bean Validationの機能は,アノテーションの指定によって利用できます。Bean Validation機能が提供するアノテーションクラス,指定可能な変数の型,および指定できない変数の型にアノテーションを指定した場合の動作を次の表に示します。

表10‒3 Bean Validation機能が提供するアノテーションクラスとその変数の型

項番

アノテーションクラス

指定可能な変数の型

指定できない変数の型にアノテーションを指定した場合の動作

備考

1

Null

すべての型に指定可能

2

NotNull

すべての型に指定可能

3

AssertTrue

  • boolean/java.lang.Boolean

javax.validation.UnexpectedTypeExceptionがスローされます。

4

AssertFalse

  • boolean/java.lang.Boolean

javax.validation.UnexpectedTypeExceptionがスローされます。

5

Min

  • java.math.BigDecimal

  • java.math.BigInteger

  • byte/java.lang.Byte

  • short/java.lang.Short

  • int/java.lang.Integer

  • long/java.lang.Long

  • float/java.lang.Float

  • double/java.lang.Double

  • java.lang.String

javax.validation.UnexpectedTypeExceptionがスローされます。

6

Max

  • java.math.BigDecimal

  • java.math.BigInteger

  • byte/java.lang.Byte

  • short/java.lang.Short

  • int/java.lang.Integer

  • long/java.lang.Long

  • float/java.lang.Float

  • double/java.lang.Double

  • java.lang.String

javax.validation.UnexpectedTypeExceptionがスローされます。

7

DecimalMin

  • java.math.BigDecimal

  • java.math.BigInteger

  • java.lang.String

  • byte/java.lang.Byte

  • short/java.lang.Short

  • int/java.lang.Integer

  • long/java.lang.Long

  • float/java.lang.Float

  • double/java.lang.Double

javax.validation.UnexpectedTypeExceptionがスローされます。

value属性に対して

java.math.BigDecimalで解析できない値を指定した場合,javax.validation.ValidationExceptionがスローされます。

8

DecimalMax

  • java.math.BigDecimal

  • java.math.BigInteger

  • java.lang.String

  • byte/java.lang.Byte

  • short/java.lang.Short

  • int/java.lang.Integer

  • long/java.lang.Long

  • float/java.lang.Float

  • double/java.lang.Double

javax.validation.UnexpectedTypeExceptionがスローされます。

value属性に対して

java.math.BigDecimalで解析できない値を指定した場合,javax.validation.ValidationExceptionがスローされます。

9

Size

  • java.lang.String

  • java.util.Collection

  • java.util.Map

  • 配列

javax.validation.UnexpectedTypeExceptionがスローされます。

max属性とmin属性に対して負の値を指定した場合,javax.validation.ValidationExceptionがスローされます。

minの値にmaxより大きい値をした場合,javax.validation.ValidationExceptionがスローされます。

10

Digits

  • java.math.BigDecimal

  • java.math.BigInteger

  • java.lang.String

  • byte/java.lang.Byte

  • short/java.lang.Short

  • int/java.lang.Integer

  • long/java.lang.Long

  • float/java.lang.Float

  • double/java.lang.Double

javax.validation.UnexpectedTypeExceptionがスローされます。

integer属性とfraction属性に対して負の値を指定した場合,javax.validation.ValidationExceptionがスローされます。

11

Past

  • java.util.Date

  • java.util.Calendar

javax.validation.UnexpectedTypeExceptionがスローされます。

12

Future

  • java.util.Date

  • java.util.Calendar

javax.validation.UnexpectedTypeExceptionがスローされます。

13

Pattern

  • java.lang.String

javax.validation.UnexpectedTypeExceptionがスローされます。

regexp属性に対して指定した値が正規表現として誤っていた場合,javax.validation.ValidationException例外がスローされます。

正規表現の妥当性はjava.util.regex.Patternの仕様に依存します。

(凡例)−:該当しない。

上記の表に記載がないアノテーションについては,Bean Validation標準仕様に依存します。各仕様に依存するアノテーションについては,各仕様のドキュメントを参照してください。