public class SpringValidatorAdapter extends java.lang.Object implements SmartValidator, ValidatorEE
javax.validator.Validator
を取り、それを Spring Validator
として公開すると同時に、元の JSR-303 Validator インターフェース自体を公開するアダプター。 プログラムによるラッパーとして使用できます。CustomValidatorBean
および LocalValidatorFactoryBean
の基本クラスとして、また SmartValidator
インターフェースの主要な実装としても機能します。
Spring Framework 5.0 以降、このアダプターは Bean 検証 1.1 および 2.0 と完全に互換性があります。
SmartValidator
, CustomValidatorBean
, LocalValidatorFactoryBean
コンストラクターと説明 |
---|
SpringValidatorAdapter(ValidatorEE targetValidator) 指定された JSR-303 バリデーターの新しい SpringValidatorAdapter を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected java.lang.String | determineErrorCode(ConstraintDescriptorEE<?> descriptor) 指定された制約記述子の Spring 報告エラーコードを決定します。 |
protected java.lang.String | determineField(ConstraintViolationEE<java.lang.Object> violation) 指定された制約違反のフィールドを決定します。 |
javax.validation.executable.ExecutableValidatorEE | forExecutables() |
protected java.lang.Object[] | getArgumentsForConstraint(java.lang.String objectName, java.lang.String field, ConstraintDescriptorEE<?> descriptor) 指定されたフィールドの検証エラーの FieldError 引数を返します。 |
BeanDescriptorEE | getConstraintsForClass(java.lang.Class<?> clazz) |
protected java.lang.Object | getRejectedValue(java.lang.String field, ConstraintViolationEE<java.lang.Object> violation, BindingResult bindingResult) Spring エラー表現による露出のために、指定された制約違反の背後にある拒否された値を抽出します。 |
protected MessageSourceResolvable | getResolvableField(java.lang.String objectName, java.lang.String field) 指定されたフィールドの解決可能なラッパーを構築し、 MessageSource のフィールド名を解決できるようにします。 |
protected void | processConstraintViolations(java.util.Set<ConstraintViolationEE<java.lang.Object>> violations, Errors errors) 指定された JSR-303 ConstraintViolations を処理し、対応するエラーを提供された Spring Errors オブジェクトに追加します。 |
boolean | supports(java.lang.Class<?> clazz) |
<T> T | unwrap(java.lang.Class<T> type) |
void | validate(java.lang.Object target, Errors errors) 提供された target オブジェクトを検証します。これは、Validator.supports(Class) メソッドが通常 true を返す(または返すと想定される) Class である必要があります。 |
void | validate(java.lang.Object target, Errors errors, java.lang.Object... validationHints) |
<T> java.util.Set<ConstraintViolationEE<T>> | validate(T object, java.lang.Class<?>... groups) |
<T> java.util.Set<ConstraintViolationEE<T>> | validateProperty(T object, java.lang.String propertyName, java.lang.Class<?>... groups) |
void | validateValue(java.lang.Class<?> targetType, java.lang.String fieldName, java.lang.Object value, Errors errors, java.lang.Object... validationHints) ターゲット型の指定されたフィールドに指定された値を検証し、値がターゲットクラスのインスタンスのフィールドにバインドされる場合と同じ検証エラーを報告します。 |
<T> java.util.Set<ConstraintViolationEE<T>> | validateValue(java.lang.Class<T> beanType, java.lang.String propertyName, java.lang.Object value, java.lang.Class<?>... groups) |
public SpringValidatorAdapter(ValidatorEE targetValidator)
targetValidator
- ラップする JSR-303 バリデーター public boolean supports(java.lang.Class<?> clazz)
Validator
public void validate(java.lang.Object target, Errors errors)
Validator
target
オブジェクトを検証します。これは、Validator.supports(Class)
メソッドが通常 true
を返す(または返すと想定される) Class
である必要があります。 提供された errors
インスタンスを使用して、結果の検証エラーを報告できます。
target
- 検証されるオブジェクト errors
- 検証プロセスに関するコンテキスト状態 ValidationUtils
public void validate(java.lang.Object target, Errors errors, java.lang.Object... validationHints)
SmartValidator
target
オブジェクトを検証します。これは、Validator.supports(Class)
メソッドが通常 true
を返す Class
の型である必要があります。 提供された errors
インスタンスを使用して、結果の検証エラーを報告できます。
validate()
のこのバリアントは、JSR-303 プロバイダーに対する検証グループなどの検証ヒントをサポートします(この場合、提供されるヒントオブジェクトは、型 Class
のアノテーション引数である必要があります)。
メモ: 検証ヒントは、実際のターゲット Validator
によって無視される場合があります。その場合、このメソッドは通常の Validator.validate(Object, Errors)
兄弟と同様に動作するはずです。
SmartValidator
の validate
target
- 検証されるオブジェクト errors
- 検証プロセスに関するコンテキスト状態 validationHints
- 検証エンジンに渡される 1 つ以上のヒントオブジェクト Validator.validate(Object, Class[])
EEpublic void validateValue(java.lang.Class<?> targetType, java.lang.String fieldName, @Nullable java.lang.Object value, Errors errors, java.lang.Object... validationHints)
SmartValidator
SmartValidator
の validateValue
targetType
- ターゲット型 fieldName
- フィールドの名前 value
- 候補値 errors
- 検証プロセスに関するコンテキスト状態 validationHints
- 検証エンジンに渡される 1 つ以上のヒントオブジェクト Validator.validateValue(Class, String, Object, Class[])
EEprotected void processConstraintViolations(java.util.Set<ConstraintViolationEE<java.lang.Object>> violations, Errors errors)
Errors
オブジェクトに追加します。violations
- JSR-303 ConstraintViolation の結果 errors
- 登録する Spring エラーオブジェクト protected java.lang.String determineField(ConstraintViolationEE<java.lang.Object> violation)
デフォルトの実装は、文字列化されたプロパティパスを返します。
violation
- 現在の JSR-303 ConstraintViolationErrors
で使用)ConstraintViolation.getPropertyPath()
EE, FieldError.getField()
protected java.lang.String determineErrorCode(ConstraintDescriptorEE<?> descriptor)
デフォルトの実装は、記述子のアノテーション型の単純なクラス名を返します。構成された MessageCodesResolver
は、オブジェクト名とフィールド名を含むエラーコードのバリエーションを自動的に生成することに注意してください。
descriptor
- 現在の違反の JSR-303 ConstraintDescriptorErrors
で使用)ConstraintDescriptor.getAnnotation()
EE, MessageCodesResolver
protected java.lang.Object[] getArgumentsForConstraint(java.lang.String objectName, java.lang.String field, ConstraintDescriptorEE<?> descriptor)
デフォルトの実装は、フィールド名を示す最初の引数を返します(getResolvableField(java.lang.String, java.lang.String)
を参照)。その後、実際のすべての制約アノテーション属性(つまり、「メッセージ」、「グループ」、「ペイロード」を除く)を属性名のアルファベット順に追加します。
たとえば、次のようにオーバーライドできます。制約記述子からさらに属性を追加します。
objectName
- ターゲットオブジェクトの名前 field
- バインディングエラーの原因となったフィールド descriptor
- JSR-303 制約記述子 DefaultMessageSourceResolvable.getArguments()
, DefaultMessageSourceResolvable
, DefaultBindingErrorProcessor.getArgumentsForBindError(java.lang.String, java.lang.String)
protected MessageSourceResolvable getResolvableField(java.lang.String objectName, java.lang.String field)
MessageSource
のフィールド名を解決できるようにします。 デフォルトの実装では、フィールドを示す最初の引数が返されます。この引数は、型が DefaultMessageSourceResolvable
で、コードとして "objectName.field" と "field"、デフォルトのメッセージとしてプレーンフィールド名を持ちます。
objectName
- ターゲットオブジェクトの名前 field
- バインディングエラーの原因となったフィールド MessageSourceResolvable
@Nullable protected java.lang.Object getRejectedValue(java.lang.String field, ConstraintViolationEE<java.lang.Object> violation, BindingResult bindingResult)
field
- バインディングエラーの原因となったフィールド violation
- 対応する JSR-303 ConstraintViolationbindingResult
- 現在のフィールドの値を含むバッキングオブジェクトの Spring BindingResultConstraintViolation.getInvalidValue()
EE, FieldError.getRejectedValue()
public <T> java.util.Set<ConstraintViolationEE<T>> validate(T object, java.lang.Class<?>... groups)
ValidatorEE
の validateEE
public <T> java.util.Set<ConstraintViolationEE<T>> validateProperty(T object, java.lang.String propertyName, java.lang.Class<?>... groups)
ValidatorEE
の validatePropertyEE
public <T> java.util.Set<ConstraintViolationEE<T>> validateValue(java.lang.Class<T> beanType, java.lang.String propertyName, java.lang.Object value, java.lang.Class<?>... groups)
ValidatorEE
の validateValueEE
public BeanDescriptorEE getConstraintsForClass(java.lang.Class<?> clazz)
ValidatorEE
の getConstraintsForClassEE
public <T> T unwrap(@Nullable java.lang.Class<T> type)
ValidatorEE
の unwrapEE
public javax.validation.executable.ExecutableValidatorEE forExecutables()
ValidatorEE
の forExecutablesEE