私たちは、チェックプラスの正面側を除いて、いくつかの必須パラメータを要求しますが、バックエンドは、多くの場合も、通常の書き込みインタフェースの開発にチェックを追加する必要がありますされていますが、ネストされたオブジェクトに前に会ったことがないことを知りませんコメントを見つけ@NotBlank追加されたフィールドが、ヌルのためのチェックのためにだけ作られたコメントを追加しましたため「」(ヌル)の状況が無効です。栗の場合は、例えば、私は、次の図に具体的に示すように、描画フィールドに次のオブジェクトをチェックしたいです:
ビューの上記のコードの観点から、我々は明らかに私がチェックを行うには、このフィールドIndexInfoModelオブジェクトusetypeにしたいかを知ることができますが、私はnullがあるだけusetypeに学校のために作られたコメントとして、それを置くために始めたように、実際の効果は、ありますusetypeにケース「」(ヌル)の検査は、有効期限が切れています。それでは、どのようにそれを解決するには?グーグルの後、本当に良い解決策だけでなく、非常にシンプルを発見しました!オブジェクトプラスに直接IndexInfoModel @Validその上にこのコメント、以下のように:
質問があるので、なぜその上でこのコメントを追加するには?このコメントは、とても不思議なのですか?次のように私たちは、内部構造@Valid、私が投稿した特定のコードを見ることができます:
/**
* Marks a property, method parameter or method return type for validation cascading.
* <p>
* Constraints defined on the object and its properties are be validated when the
* property, method parameter or method return type is validated.
* <p>
* This behavior is applied recursively.
*
* @author Emmanuel Bernard
* @author Hardy Ferentschik
*/
@Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented
public @interface Valid {
}
説明注釈から明らか方法、それが特性にマークすることができることを知っている、またはメソッドパラメータ戻り型は、オブジェクトとそのプロパティに定義されている検証、2行目が明確に表現された制約をカスケード接続することができたときに検証されていますプロパティ、メソッドのパラメータまたはメソッドの戻り値の型が検証され、 認証属性メソッドのパラメータまたはメソッドの戻り値の型は、検証オブジェクトに定義された制約とその属性、この動作は再帰的に適用される最後の行を。この動作があることを示していることを意味しますそれは、このコメントを追加@Valid後と言うことですつまり、再帰的に適用され、多くの層IndexInfoModelオブジェクトはIndexInfoModelオブジェクトにネストされたオブジェクトどんなにを確認することができます!
私はよく書かれてブログがあると思い、書き込みは、より完全な、我々はを参照することができます:
@Validatedノートは無効、無効ネストされたオブジェクトと@NotBlank属性
ご質問があるか、異なる見解を持っている場合は、これらの問題の私の包括的な博覧会があり、みんなが前方に置くために招待されました!ありがとうございます!