我想要完成的是:
正在验证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”是一个自定义验证注释 . 我可以使用验证组执行两阶段验证 .
问题是,如果某些“兴趣”对象无效,我想将错误消息与“兴趣”字段(List <Long>类型)相关联,因此当我检索表单错误时,错误与正确的字段相关联 .
也许我正试图以错误的方式使用验证 . 我试图避免进行一堆程序化比较,手动填充错误 .
1 回答
回答我自己的问题,这是可以使用PropertyEditors实现的 . 表单可能返回List <Long>,但表单对象只能有一个List <Interest>,它是使用所述Property mapper构建的 . 之后,该列表上的@Valid应验证"Interest"强制执行的任何约束 .