我有一个包含多个字段的表单,我想在用户提交时验证它。
我遇到的问题是,如果一个字段由于应该绑定到int的字段中的非数字字符而不绑定,那么我的POJO中的validate方法将不会被调用。这意味着用户只会显示应该是数字的字段的错误,但不会显示其他字段的任何错误,因为在调用validate方法之前绑定失败。
我想知道绕这个最好的方法是什么?我希望能够向用户显示尽可能多的错误,而不是让他们修复一个,提交,并且由于另一个字段没有显示为先前有错误而再次失败。
答案 0 :(得分:2)
我遇到了同样的问题,但是如果你看看Play的代码,你会发现它是不可能的。
github.com/playframework - Form.bind(Map,String[])
如果能够实例化您的POJO,则只能调用validate()
。如果绑定失败,那么没有对象可以调用validate。
如果您希望所有验证一次性发生,那么我认为您必须使用所有基于注释的验证器(根据需要编写自己的验证器)或自己处理所有验证。