2

検証メソッドが呼び出されるバリデーター内でグループを取得することは可能ですか?

複数のグループ (作成、更新、削除) があり、ほとんどの場合、1 つの Bean に対して同様の検証が行われます。
複数のほぼ同一のバリデーターを提供する (および同じ検証コードを外部化するユーティリティ関数を作成する) 代わりに、検証が呼び出されたグループに関する検証を処理する単一のバリデーターを使用することをお勧めします。

最悪の場合、n 個のバリデーターではなく、 3 回nの単一のバリデーターと共有コード用のユーティリティ クラスがあります。n

Validator.validate(Object, Class<?> ... groups)

バリデーター内でこれらのグループを取得して、疑似的なことを行うにはどうすればよいですか?

if (groups.contains(Create.class)) // validate create stuff
4

1 に答える 1

1

カスタム制約 (ConstraintValidator 実装) 内で現在検証されている制約を決定する方法を尋ねている場合、答えはできません。

グループと制約の概念は直交しています。制約は、検証されるグループに応じて異なる動作をするべきではありません。

このコンテキストでは、制約のユーザーについて考えてください。検証が条件付きである場合、制約が何をするかをどのように知ることができますか?

于 2013-06-30T08:35:16.130 に答える