我有一个包含多个字段的表单,我想在用户提交它时对其进行验证。
我遇到的问题是,如果一个字段由于应绑定(bind)到 int 的字段中的非数字字符而未绑定(bind),那么我的 POJO 中的 validate 方法将不会被调用。这意味着用户只会看到应该是数字的字段的错误,但不会显示其他字段的任何错误,因为在调用验证方法之前绑定(bind)失败。
我想知道解决这个问题的最佳方法是什么?我希望能够向用户显示尽可能多的错误,而不是让他们修复一个错误,提交,然后由于另一个字段之前没有显示错误而再次失败。
最佳答案
我遇到了同样的问题,但如果您查看 Play 的代码,您会发现这是不可能的。
github.com/playframework - Form.bind(Map,String[])
如果 Play 能够实例化您的 POJO,则只能调用 validate()
。如果绑定(bind)失败,则没有对象可以调用验证。
如果您希望所有验证立即发生,那么我认为您必须使用所有基于注释的 validator (根据需要编写自己的 validator )或自己处理所有验证。
关于java - 绑定(bind)失败会阻止 Playframework 2.2.1 中其他字段的进一步验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20974572/