例外だけをビューなどにバインドするのはBindingResult
便利ですか?
正確な使用法はBindingResult
何ですか?
または、モデル属性をビューにバインドするのに役立ちますか。
例外だけをビューなどにバインドするのはBindingResult
便利ですか?
正確な使用法はBindingResult
何ですか?
または、モデル属性をビューにバインドするのに役立ちますか。
特定の例: Controller 内のValidatorの validate メソッドの引数として BindingResult オブジェクトを使用します。
次に、このオブジェクトをチェックして検証エラーを探します。
validator.validate(modelObject, bindingResult);
if (bindingResult.hasErrors()) {
// do something
}
基本的BindingResult
には、検証の結果を格納するオブジェクトが検証の結果を格納および取得する方法を指示するインターフェースです (エラー、許可されていないフィールドへのバインドの試行など)。
Spring MVC Form Validation with Annotations Tutorialから:
[ ] は、検証とバインディングの結果を保持し、発生した可能性のあるエラーを含む
BindingResult
Spring のオブジェクトです。検証されるモデルオブジェクトの直後に来る必要があります。そうしないと、Spring はオブジェクトの検証に失敗し、例外をスローします。BindingResult
Spring が
@Valid
を検出すると、検証対象のオブジェクトのバリデーターを見つけようとします。「アノテーション駆動型」が有効になっている場合、Spring は自動的に検証アノテーションを取得します。次に、Spring はバリデーターを呼び出し、エラーを に入れBindingResult
、BindingResult をビュー モデルに追加します。
Springの公式ドキュメントから:
バインディング結果を表す一般的なインターフェイス。エラー登録機能のインターフェースを拡張し、 バリデーターを適用できるようにし、バインディング固有の分析とモデル構築を追加します。
DataBinder.getBindingResult()メソッドを介して取得されたDataBinderの結果ホルダーとして機能します。BindingResultの実装を直接使用して、たとえば、その上でValidatorを呼び出すこともできます(たとえば、単体テストの一部として)。