我的类中有Date expirationDate
字段。我在我的表格中也有选择下拉菜单,上面有日/月/年
<select class="form-control" value="@form("day")" >
<option>dd</option>
@for(a <- 1 to 31) {
<option>@a</option>
}
</select>
<select class="form-control" value="@form("month")" >
<option>mm</option>
@for(a <- 1 to 12) {
<option>@a</option>
}
</select>
<select class="form-control" value="@form("year")" >
<option>yyyy</option>
@for(a <- 2014 to 2100) {
<option>@a</option>
}
</select>
如何将此数据绑定到控制器中的java.util.Date
类型?更具体地说
public static Result createScenarioPOST() throws ParseException {
User user=User.find
.where().eq("email", session("email")).findUnique();
Form<Creation> createForm = Form.form(Creation.class)
.bindFromRequest();
if (createForm.hasErrors()) {
return badRequest(createScenario.render(createForm, user));
} else {
return redirect(routes.Application.index());
}
}
这里的困难来自于为日/月/年字段使用单独的输入字段。由于 Play 的 Form
映射到单个值,因此不能使用它们映射到单个值。
使用Form
映射(并验证!)各个值,然后按照通常创建Date
的方式构造Date
。
的一种更简单的方法是将日期设置为单个表单值,例如使用<input type="date">
输入字段。如果您确实必须具有单独的字段并且确实希望将其绑定到单个字段,则可以考虑使用 JavaScript 在表单提交时将单独的字段连接成单个值。