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

[目次][用語][索引][前へ][次へ]

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の仕様に依存します。

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