java - 绑定(bind)失败会阻止 Playframework 2.2.1 中其他字段的进一步验证

标签 java playframework-2.0

我有一个包含多个字段的表单,我想在用户提交它时对其进行验证。

我遇到的问题是,如果一个字段由于应绑定(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/

相关文章:

java - 如何从字符串中获取不同长度的最后几个字符..?

java - 我如何在java中使用电子邮件(用户名)和密码登录谷歌分析?

java - 消除类型转换的需要

java - Spring数据和play框架,spring不创建新事务

playframework - Unresolved postgresql 9.2 jar 在 play 框架中的依赖关系

java - Android 中的函数重用

java - View Scoped Bean preRenderView 方法被多次调用

playframework-2.0 - 错误: RuntimeException: No JPA EntityManagerFactory configured for name [default]

java - 使用 playframework 上传文件时的附加信息

scala - Play framework 2.0 - deadLetters 而不是 Actor