2

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

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

4

1 回答 1

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 中非常微不足道。)

于 2012-12-18T11:33:52.063 回答