我需要在表单中输入2个输入,一个用于日期,一个用于时间。在我的模型中,它只是java.util.Date类型的一个属性。使用Play框架2处理生成html并将输入字段绑定到模型中的date属性的最佳实践是什么?
注意,如果我使用字段构造函数,我不能按照我需要的方式布置表单。我希望第一行有标签,第二行有2个输入,第三行有验证错误。我应该只使用原始的HTML吗?如果我这样做,我仍然可以访问验证错误和约束吗?
答案 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中非常简单。)