0

我想要完成的是:

验证 bean 支持的表单,例如使用以下类

public class PersonForm {

    @NotNull
    String name;

    List<Long> interests;

    // This attribute is not filled out in the form
    List<Interest> realInterests;
}

因此,“姓名”和“兴趣”来自网络表单。“名称”有一些约束(NotNull),使用@Valid 可以完成它应该做的事情。

“interests”是一个兴趣 ID 列表。

在对“名称”进行初步验证后,我填写了 List 集合。

@CustomValidInterest
public class Interest {

    Long id;
    String name;
    boolean available;

}

我想在之后验证这个结构。“@CustomValidInterest”是一个自定义验证注解。我可以使用验证组进行两阶段验证。

问题是,如果某些“兴趣”对象无效,我想将错误消息与“兴趣”字段(List< Long > 类型)相关联,因此当我检索表单错误时,错误与正确的字段相关联。

也许我试图以错误的方式使用验证。我试图避免进行大量手动填充错误的程序比较。

4

1 回答 1

0

回答我自己的问题,这是可以使用PropertyEditors实现的。表单可能会返回一个 List< Long >,但表单对象只能有一个 List < Interest >,它是使用所述属性映射器构建的。之后,该列表上的 @Valid 应该验证“兴趣”强制执行的任何约束。

于 2012-10-22T06:20:01.453 回答