Play中的输入!日期和时间?

时间:2012-12-18 07:55:35

标签: java view playframework playframework-2.0 field

我需要在表单中输入2个输入,一个用于日期,一个用于时间。在我的模型中,它只是java.util.Date类型的一个属性。使用Play框架2处理生成html并将输入字段绑定到模型中的date属性的最佳实践是什么?

注意,如果我使用字段构造函数,我不能按照我需要的方式布置表单。我希望第一行有标签,第二行有2个输入,第三行有验证错误。我应该只使用原始的HTML吗?如果我这样做,我仍然可以访问验证错误和约束吗?

1 个答案:

答案 0 :(得分:3)

如果在模型中使用两个单独的字段,那么绑定肯定会更容易。一个想法是创建一个绑定到表单提交的中间类。

// Controller

public static class FormSubmission {
  public Date date;
  public Date time;
}

public static Result submitForm() {
  Form<FormSubmission> filledForm = form(FormSubmission.class).bindFromRequest();
  if (filledForm.hasErrors()) {
    return badRequest();
  } else {
    ModelClass model = new ModelClass(); // fetch first if you update
    // Copy all values from form submission to the model
    model.dateAndTime = combineDateAndTime(filledForm.get().date, filledForm.get().time);
  }
  return ok();
}

// View
@(form: Form[FormSubmission])
...

(我知道这没有帮助,但是这样的任务在Scala中非常简单。)