クラス SpringValidatorAdapter

java.lang.ObjectSE
org.springframework.validation.beanvalidation.SpringValidatorAdapter
実装されたすべてのインターフェース:
ValidatorEESmartValidatorValidator
既知の直属サブクラス
CustomValidatorBeanLocalValidatorFactoryBean

public class SpringValidatorAdapter extends ObjectSE implements SmartValidator, ValidatorEE
JSR-303 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

      public SpringValidatorAdapter(ValidatorEE targetValidator)
      指定された JSR-303 バリデーターの新しい SpringValidatorAdapter を作成します。
      パラメーター:
      targetValidator - ラップする JSR-303 バリデーター
  • メソッドの詳細

    • supports

      public boolean supports(ClassSE<?> clazz)
      インターフェースからコピーされた説明: Validator
      提供された clazz のこの Validator validate インスタンスは可能ですか?

      このメソッドは通常、次のよう実装されます。

      return Foo.class.isAssignableFrom(clazz);
      Foo は、validated になる実際のオブジェクトインスタンスのクラス(またはスーパークラス)です)
      次で指定:
      インターフェース Validatorsupports 
      パラメーター:
      clazz - この Validatorvalidate が可能かどうか尋ねられている ClassSE
      戻り値:
      この Validator が確かに提供された clazzvalidate インスタンスである場合、true 
    • validate

      public void validate(ObjectSE target, Errors errors)
      インターフェースからコピーされた説明: Validator
      指定された target オブジェクトを検証します。このオブジェクトは、Validator.supports(Class) メソッドが通常 true を返した (または返すことになる) ClassSE である必要があります。

      提供された errors インスタンスは、通常、このバリデーターが参加する大規模なバインディングプロセスの一部として、結果として生じる検証エラーを報告するために使用できます。バインディングエラーは、通常、この呼び出しの前に errors インスタンスに事前登録されています。

      次で指定:
      インターフェース Validatorvalidate 
      パラメーター:
      target - 検証されるオブジェクト
      errors - 検証プロセスに関するコンテキスト状態
      関連事項:
    • validate

      public void validate(ObjectSE target, Errors errors, ObjectSE... validationHints)
      インターフェースからコピーされた説明: SmartValidator
      指定された target オブジェクトを検証します。これは、Validator.supports(Class) メソッドが通常 true を返す ClassSE 型でなければなりません。

      提供された errors インスタンスを使用して、結果の検証エラーを報告できます。

      validate() のこのバリアントは、JSR-303 プロバイダーに対する検証グループなどの検証ヒントをサポートします(この場合、提供されるヒントオブジェクトは、型 Class のアノテーション引数である必要があります)。

      メモ: 検証ヒントは、実際のターゲット Validator によって無視される場合があります。その場合、このメソッドは通常の Validator.validate(Object, Errors) 兄弟と同様に動作するはずです。

      次で指定:
      インターフェース SmartValidatorvalidate 
      パラメーター:
      target - 検証されるオブジェクト
      errors - 検証プロセスに関するコンテキスト状態
      validationHints - 検証エンジンに渡される 1 つ以上のヒントオブジェクト
      関連事項:
    • validateValue

      public void validateValue(ClassSE<?> targetType, StringSE fieldName, @Nullable ObjectSE value, Errors errors, ObjectSE... validationHints)
      インターフェースからコピーされた説明: SmartValidator
      ターゲット型の指定されたフィールドに指定された値を検証し、値がターゲットクラスのインスタンスのフィールドにバインドされる場合と同じ検証エラーを報告します。
      次で指定:
      インターフェース SmartValidatorvalidateValue 
      パラメーター:
      targetType - ターゲット型
      fieldName - フィールドの名前
      value - 候補値
      errors - 検証プロセスに関するコンテキスト状態
      validationHints - 検証エンジンに渡される 1 つ以上のヒントオブジェクト
      関連事項:
    • processConstraintViolations

      protected void processConstraintViolations(SetSE<ConstraintViolationEE<ObjectSE>> violations, Errors errors)
      指定された JSR-303 ConstraintViolations を処理し、対応するエラーを提供された Spring Errors オブジェクトに追加します。
      パラメーター:
      violations - JSR-303 ConstraintViolation の結果
      errors - 登録する Spring エラーオブジェクト
    • determineField

      protected StringSE determineField(ConstraintViolationEE<ObjectSE> violation)
      指定された制約違反のフィールドを決定します。

      デフォルトの実装は、文字列化されたプロパティパスを返します。

      パラメーター:
      violation - 現在の JSR-303 ConstraintViolation
      戻り値:
      Spring に報告されたフィールド (Errors で使用)
      導入:
      4.2
      関連事項:
    • determineErrorCode

      protected StringSE determineErrorCode(ConstraintDescriptorEE<?> descriptor)
      指定された制約記述子の 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

      protected MessageSourceResolvable getResolvableField(StringSE objectName, StringSE field)
      指定されたフィールドの解決可能なラッパーを構築し、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 ConstraintViolation
      bindingResult - 現在のフィールドの値を含むバッキングオブジェクトの Spring BindingResult
      戻り値:
      フィールドエラーの一部として公開する無効な値
      導入:
      4.2
      関連事項:
    • requiresMessageFormat

      protected boolean requiresMessageFormat(ConstraintViolationEE<?> 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

      public <T> SetSE<ConstraintViolationEE<T>> validate(T object, ClassSE<?>... groups)
      次で指定:
      インターフェース ValidatorEEvalidateEE 
    • validateProperty

      public <T> SetSE<ConstraintViolationEE<T>> validateProperty(T object, StringSE propertyName, ClassSE<?>... groups)
      次で指定:
      インターフェース ValidatorEEvalidatePropertyEE 
    • validateValue

      public <T> SetSE<ConstraintViolationEE<T>> validateValue(ClassSE<T> beanType, StringSE propertyName, ObjectSE value, ClassSE<?>... groups)
      次で指定:
      インターフェース ValidatorEEvalidateValueEE 
    • getConstraintsForClass

      public BeanDescriptorEE getConstraintsForClass(ClassSE<?> clazz)
      次で指定:
      インターフェース ValidatorEEgetConstraintsForClassEE 
    • unwrap

      public <T> T unwrap(@Nullable ClassSE<T> type)
      インターフェースからコピーされた説明: SmartValidator
      必要な限りラップを解除して、指定された型の含まれているバリデータインスタンスを返します。
      次で指定:
      インターフェース SmartValidatorunwrap 
      次で指定:
      インターフェース ValidatorEEunwrapEE 
      型パラメーター:
      T - 返されるオブジェクトの型
      パラメーター:
      type - 返すオブジェクトのクラス
      戻り値:
      指定された型のバリデーターインスタンス。ネストされたバリデータがない場合は null。指定されたバリデーターの型が一致しない場合、例外が発生する可能性があります。
    • forExecutables

      public ExecutableValidatorEE forExecutables()
      次で指定:
      インターフェース ValidatorEEforExecutablesEE