如何应用自定义逻辑并将表单POJO绑定到模型?

时间:2012-07-23 20:42:39

标签: playframework-2.0

我有一个相当复杂且大Model的{​​{1}}。在这个对象中,我有一些沉重的自定义逻辑和日期时间转换,所以我决定为表单创建一个Task,因为我需要自定义验证/转换。但是如何将这个POJO绑定回POJO

这是正确的方法:

Model

是否有public static Result save() { Form<forms.Task> taskForm = form(forms.Task.class).bindFromRequest(); if (taskForm.hasErrors()) { return badRequest(views.html.tasks.create.render(taskForm)); } // bind the formValues to our model Task newTask = form(Task.class).bind(taskForm.data()).get(); newTask.createdBy = User.getLoggedInUserByAlias(session().get("user")); newTask.save(); return GO_TO_OVERVIEW; } 方法可以做到这一点?我认为我做错了。

1 个答案:

答案 0 :(得分:0)

如维基上所述:https://github.com/playframework/Play20/wiki/JavaForms 使用validate方法的自定义POJO是最好和最正确的方法:

public class User {

  @Required
  public String email;
  public String password;

  public String validate() {
      if(authenticate(email,password) == null) {
          return "Invalid email or password";
      }
      return null;
  }
}