0

我有一个相当复杂和大的Model叫做Task. 在这个对象中,我有一些繁重的自定义逻辑和日期时间转换,所以我决定POJO为表单制作一个,因为我需要自定义验证/转换。但是如何将此 POJO 绑定回 a 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;
}

有没有cleaner办法做到这一点?我认为我做错了。

4

1 回答 1

0

正如维基上提到的:https ://github.com/playframework/Play20/wiki/JavaForms 使用该方法的自定义 POJOvalidate是最好和正确的使用方法:

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;
  }
}
于 2012-07-27T15:15:43.243 回答