hasErrors():如何忽略特定输入的验证

时间:2013-11-19 14:01:36

标签: java forms validation playframework playframework-2.2

我有一个包含许多变量(名称,电子邮件,密码等)的User类,有时我只需要更新其中的一个或两个(使用表单)。我从表单中获取数据并使用json对象的绑定:

Form<User> userForm = User.form.bind(json);

if(userForm.hasErrors()) {
    return badRequest("error");
}

hasError()检索错误,因为它没有收到一些数据。如何告诉hasError()它没有验证某些特定字段?

1 个答案:

答案 0 :(得分:2)

在GitHub上查看“Forms”示例应用。它显示了如何为约束分配“组”,以便您可以根据情况强制执行不同的约束集。我工作的项目仍然在Play 2.0.x上没有这个,但我相信它在Play 2.1和/或2.2中。

https://github.com/playframework/playframework/tree/master/samples/java/forms

您要查看的文件是User模型和Wizard控制器。

应用/模型/ User.java
在模型中,您可以为特定组分配约束。这些组似乎只是模型类中定义的接口。

  @Required(groups = {All.class, Step1.class})
  @MinLength(value = 4, groups = {All.class, Step1.class})
  public String username;

应用/控制器/ Wizard.java
现在,当您进行表单绑定时,您将传入要验证的组/接口类。

  Form<User> filledForm = form(User.class, User.Step1.class).bindFromRequest();