クラス SpringValidatorAdapter
- 実装されたすべてのインターフェース:
ValidatorEE
、SmartValidator
、Validator
- 既知の直属サブクラス
CustomValidatorBean
,LocalValidatorFactoryBean
javax.validator.Validator
を取り、それを Spring Validator
として公開すると同時に、元の JSR-303 Validator インターフェース自体を公開するアダプター。 プログラムによるラッパーとして使用できます。CustomValidatorBean
および LocalValidatorFactoryBean
の基本クラスとして、また SmartValidator
インターフェースの主要な実装としても機能します。
Spring Framework 5.0 以降、このアダプターは Bean 検証 1.1 および 2.0 と完全に互換性があります。
- 導入:
- 3.0
- 作成者:
- Juergen Hoeller, Sam Brannen
- 関連事項:
コンストラクターのサマリー
コンストラクターコンストラクター説明SpringValidatorAdapter
(ValidatorEE targetValidator) 指定された JSR-303 バリデーターの新しい SpringValidatorAdapter を作成します。メソッドのサマリー
修飾子と型メソッド説明protected StringSE
determineErrorCode
(ConstraintDescriptorEE<?> descriptor) 指定された制約記述子の Spring 報告エラーコードを決定します。protected StringSE
determineField
(ConstraintViolationEE<ObjectSE> violation) 指定された制約違反のフィールドを決定します。protected ObjectSE[]
getArgumentsForConstraint
(StringSE objectName, StringSE field, ConstraintDescriptorEE<?> descriptor) 指定されたフィールドの検証エラーの FieldError 引数を返します。getConstraintsForClass
(ClassSE<?> clazz) protected ObjectSE
getRejectedValue
(StringSE field, ConstraintViolationEE<ObjectSE> violation, BindingResult bindingResult) Spring エラー表現による露出のために、指定された制約違反の背後にある拒否された値を抽出します。protected MessageSourceResolvable
getResolvableField
(StringSE objectName, StringSE field) 指定されたフィールドの解決可能なラッパーを構築し、MessageSource
のフィールド名を解決できるようにします。protected void
processConstraintViolations
(SetSE<ConstraintViolationEE<ObjectSE>> violations, Errors errors) 指定された JSR-303 ConstraintViolations を処理し、対応するエラーを提供された SpringErrors
オブジェクトに追加します。protected boolean
requiresMessageFormat
(ConstraintViolationEE<?> violation) この違反の補間されたメッセージにプレースホルダーが残っているため、MessageFormat
SE を適用する必要があるかどうかを示します。boolean
<T> T
void
提供されたtarget
オブジェクトを検証します。これは、Validator.supports(Class)
メソッドが通常true
を返す(または返すと想定される)Class
SE でなければなりません。void
<T> SetSE<ConstraintViolationEE<T>>
<T> SetSE<ConstraintViolationEE<T>>
validateProperty
(T object, StringSE propertyName, ClassSE<?>... groups) void
validateValue
(ClassSE<?> targetType, StringSE fieldName, ObjectSE value, Errors errors, ObjectSE... validationHints) ターゲット型の指定されたフィールドに指定された値を検証し、値がターゲットクラスのインスタンスのフィールドにバインドされる場合と同じ検証エラーを報告します。<T> SetSE<ConstraintViolationEE<T>>
validateValue
(ClassSE<T> beanType, StringSE propertyName, ObjectSE value, ClassSE<?>... groups)
コンストラクターの詳細
SpringValidatorAdapter
指定された JSR-303 バリデーターの新しい SpringValidatorAdapter を作成します。- パラメーター:
targetValidator
- ラップする JSR-303 バリデーター
メソッドの詳細
supports
インターフェースからコピーされた説明:Validator
validate
インターフェースからコピーされた説明:Validator
提供されたtarget
オブジェクトを検証します。これは、Validator.supports(Class)
メソッドが通常true
を返す(または返すと想定される)Class
SE でなければなりません。提供された
errors
インスタンスを使用して、結果の検証エラーを報告できます。validate
インターフェースからコピーされた説明:SmartValidator
指定されたtarget
オブジェクトを検証します。これは、Validator.supports(Class)
メソッドが通常true
を返すClass
SE 型でなければなりません。提供された
errors
インスタンスを使用して、結果の検証エラーを報告できます。validate()
のこのバリアントは、JSR-303 プロバイダーに対する検証グループなどの検証ヒントをサポートします(この場合、提供されるヒントオブジェクトは、型Class
のアノテーション引数である必要があります)。メモ: 検証ヒントは、実際のターゲット
Validator
によって無視される場合があります。その場合、このメソッドは通常のValidator.validate(Object, Errors)
兄弟と同様に動作するはずです。- 次で指定:
- インターフェース
SmartValidator
のvalidate
- パラメーター:
target
- 検証されるオブジェクトerrors
- 検証プロセスに関するコンテキスト状態validationHints
- 検証エンジンに渡される 1 つ以上のヒントオブジェクト- 関連事項:
validateValue
public void validateValue(ClassSE<?> targetType, StringSE fieldName, @Nullable ObjectSE value, Errors errors, ObjectSE... validationHints) インターフェースからコピーされた説明:SmartValidator
ターゲット型の指定されたフィールドに指定された値を検証し、値がターゲットクラスのインスタンスのフィールドにバインドされる場合と同じ検証エラーを報告します。- 次で指定:
- インターフェース
SmartValidator
のvalidateValue
- パラメーター:
targetType
- ターゲット型fieldName
- フィールドの名前value
- 候補値errors
- 検証プロセスに関するコンテキスト状態validationHints
- 検証エンジンに渡される 1 つ以上のヒントオブジェクト- 関連事項:
processConstraintViolations
protected void processConstraintViolations(SetSE<ConstraintViolationEE<ObjectSE>> violations, Errors errors) 指定された JSR-303 ConstraintViolations を処理し、対応するエラーを提供された SpringErrors
オブジェクトに追加します。- パラメーター:
violations
- JSR-303 ConstraintViolation の結果errors
- 登録する Spring エラーオブジェクト
determineField
指定された制約違反のフィールドを決定します。デフォルトの実装は、文字列化されたプロパティパスを返します。
- パラメーター:
violation
- 現在の JSR-303 ConstraintViolation- 戻り値:
- Spring に報告されたフィールド (
Errors
で使用) - 導入:
- 4.2
- 関連事項:
determineErrorCode
指定された制約記述子の Spring 報告エラーコードを決定します。デフォルトの実装は、記述子のアノテーション型の単純なクラス名を返します。構成された
MessageCodesResolver
は、オブジェクト名とフィールド名を含むエラーコードのバリエーションを自動的に生成することに注意してください。- パラメーター:
descriptor
- 現在の違反の JSR-303 ConstraintDescriptor- 戻り値:
- 対応するエラーコード (
Errors
で使用) - 導入:
- 4.2
- 関連事項:
getArgumentsForConstraint
protected ObjectSE[] getArgumentsForConstraint(StringSE objectName, StringSE field, ConstraintDescriptorEE<?> descriptor) 指定されたフィールドの検証エラーの FieldError 引数を返します。違反した制約ごとに呼び出されます。デフォルトの実装は、フィールド名を示す最初の引数を返します(
getResolvableField(java.lang.String, java.lang.String)
を参照)。その後、実際のすべての制約アノテーション属性(つまり、「メッセージ」、「グループ」、「ペイロード」を除く)を属性名のアルファベット順に追加します。たとえば、次のようにオーバーライドできます。制約記述子からさらに属性を追加します。
- パラメーター:
objectName
- ターゲットオブジェクトの名前field
- バインディングエラーの原因となったフィールドdescriptor
- JSR-303 制約記述子- 戻り値:
- FieldError 引数を表すオブジェクト配列
- 関連事項:
getResolvableField
指定されたフィールドの解決可能なラッパーを構築し、MessageSource
のフィールド名を解決できるようにします。デフォルトの実装では、フィールドを示す最初の引数が返されます。この引数は、型が
DefaultMessageSourceResolvable
で、コードとして "objectName.field" と "field"、デフォルトのメッセージとしてプレーンフィールド名を持ちます。- パラメーター:
objectName
- ターゲットオブジェクトの名前field
- バインディングエラーの原因となったフィールド- 戻り値:
- 指定されたフィールドに対応する
MessageSourceResolvable
- 導入:
- 4.3
- 関連事項:
getRejectedValue
@Nullable protected ObjectSE getRejectedValue(StringSE field, ConstraintViolationEE<ObjectSE> violation, BindingResult bindingResult) Spring エラー表現による露出のために、指定された制約違反の背後にある拒否された値を抽出します。- パラメーター:
field
- バインディングエラーの原因となったフィールドviolation
- 対応する JSR-303 ConstraintViolationbindingResult
- 現在のフィールドの値を含むバッキングオブジェクトの Spring BindingResult- 戻り値:
- フィールドエラーの一部として公開する無効な値
- 導入:
- 4.2
- 関連事項:
requiresMessageFormat
この違反の補間されたメッセージにプレースホルダーが残っているため、MessageFormat
SE を適用する必要があるかどうかを示します。Spring の MessageSource のデフォルトメッセージとしてレンダリングされるときに、Bean 検証定義メッセージ(ValidationMessages.properties
から出力される)のために呼び出されます。デフォルトの実装では、フィールド名の Spring スタイルの "{0}" プレースホルダーを
MessageFormat
SE の指示と見なします。他のプレースホルダーまたはエスケープ構文の出現は、通常、不一致であり、正規表現パターン値などから生じます。標準の Bean 検証では、"{0}" スタイルのプレースホルダーはまったくサポートされていないことに注意してください。これは、Spring MessageSource リソースバンドルで通常使用される機能です。- パラメーター:
violation
- メッセージ内の名前付き属性参照の BV 定義の補間を含む、Bean 検証制約違反- 戻り値:
-
java.text.MessageFormat
を適用する場合はtrue
、違反のメッセージをそのまま使用する場合はfalse
- 導入:
- 5.1.8
- 関連事項:
validate
- 次で指定:
- インターフェース
ValidatorEE
のvalidateEE
validateProperty
public <T> SetSE<ConstraintViolationEE<T>> validateProperty(T object, StringSE propertyName, ClassSE<?>... groups) - 次で指定:
- インターフェース
ValidatorEE
のvalidatePropertyEE
validateValue
public <T> SetSE<ConstraintViolationEE<T>> validateValue(ClassSE<T> beanType, StringSE propertyName, ObjectSE value, ClassSE<?>... groups) - 次で指定:
- インターフェース
ValidatorEE
のvalidateValueEE
getConstraintsForClass
- 次で指定:
- インターフェース
ValidatorEE
のgetConstraintsForClassEE
unwrap
- 次で指定:
- インターフェース
ValidatorEE
のunwrapEE
forExecutables
- 次で指定:
- インターフェース
ValidatorEE
のforExecutables