我需要在我的表单中有 2 个输入,一个用于日期,一个用于时间。在我的模型中,它只是 java.util.Date 类型的一个属性。使用 Play 框架 2 处理生成 html 并将输入字段绑定到模型中的 date 属性的最佳实践是什么?
请注意,如果我使用字段构造函数,我无法按照我需要的方式布置表单。我想要第一行的标签,第二行的 2 个输入,第三行的验证错误。我应该只使用原始html吗?如果这样做,我是否仍然可以访问验证错误和约束?
我需要在我的表单中有 2 个输入,一个用于日期,一个用于时间。在我的模型中,它只是 java.util.Date 类型的一个属性。使用 Play 框架 2 处理生成 html 并将输入字段绑定到模型中的 date 属性的最佳实践是什么?
请注意,如果我使用字段构造函数,我无法按照我需要的方式布置表单。我想要第一行的标签,第二行的 2 个输入,第三行的验证错误。我应该只使用原始html吗?如果这样做,我是否仍然可以访问验证错误和约束?
如果您在模型中使用两个单独的字段,绑定肯定会更容易。一个想法是创建一个绑定到表单提交的中间类。
// 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 中非常微不足道。)