私が達成しようとしているのは次のとおりです。
たとえば、次のクラスを使用して、Bean に基づくフォームを検証します。
public class PersonForm {
@NotNull
String name;
List<Long> interests;
// This attribute is not filled out in the form
List<Interest> realInterests;
}
したがって、「名前」と「興味」は Web フォームから取得されます。「名前」にはいくつかの制約 (NotNull) があり、@Valid を使用すると、本来の目的が実行されます。
「interests」は、Interest ID のリストです。
「名前」の最初の検証を行った後、List コレクションに入力します。
@CustomValidInterest
public class Interest {
Long id;
String name;
boolean available;
}
後でこの構造を検証したいと思います。「@CustomValidInterest」はカスタム検証アノテーションです。do this with Validation Groups を使用して、2 段階の検証を行うことができます。
問題は、一部の「興味」オブジェクトが有効でない場合、エラー メッセージを「興味」フィールド (List< Long > タイプ) に関連付けたいため、フォーム エラーを取得すると、エラーが正しいフィールドに関連付けられることです。
検証を間違った方法で使用しようとしているのかもしれません。エラーを手動で埋めるプログラムによる比較の束を避けようとしていました。