我想要完成的是:
验证bean支持的表单,例如使用以下类
public class PersonForm {
@NotNull
String name;
List<Long> interests;
// This attribute is not filled out in the form
List<Interest> realInterests;
}
因此,“名称”和“兴趣”来自网络表单。 “name”有一些约束(NotNull),并且使用@Valid会做它应该做的事情。
“兴趣”是一份兴趣ID列表。
在对“名称”进行初步验证后,我填写了List集合。
@CustomValidInterest
public class Interest {
Long id;
String name;
boolean available;
}
之后我想验证这个结构。 “@CustomValidInterest”是一个自定义验证注释。 我可以使用验证组执行两阶段验证。
问题是,如果某些“兴趣”对象无效,我想将错误消息与“兴趣”字段(列表&lt; Long&gt;类型)相关联,因此当我检索表单错误时,错误与正确的领域。
也许我正试图以错误的方式使用验证。我试图避免进行一系列程序化比较,手动填充错误。
答案 0 :(得分:0)
回答我自己的问题,使用PropertyEditors可以实现这一点。表单可能会返回List&lt;长&gt;但是表单对象只能有一个List&lt;兴趣&gt;这是使用所述Property mapper构建的。之后,该列表上的@Valid应验证“兴趣”强制执行的任何约束。