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