我正在使用带有休眠的spring mvc, 当我提交表格时,它显示错误
The request sent by the client was syntactically incorrect".
这是我的表格:
<table>
<form:form action="save" method="post" modelAttribute="staffSchedule">
<tr>
<td>date:</td>
<td><form:input path="date"/></td>
</tr>
<tr>
<td>Start Time:</td>
<td><form:input path="startTime"/></td>
</tr>
<tr>
<td>End Time:</td>
<td><form:input path="endTime"/></td>
</tr>
<tr>
<td>Status:</td>
<td>
<form:select path="status">
<form:options items="${status}" />
</form:select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Save">
</td>
</tr>
</form:form>
控制器代码是
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ModelAndView saveUser(@ModelAttribute StaffSchedule staffSchedule) {
staffScheduleDao.saveOrUpdate(staffSchedule);
return new ModelAndView("redirect:/list");
}
我该怎么做才能纠正这个问题?我认为问题出在date
。
答案 0 :(得分:0)
Spring不知道如何反序列化从前端进入的日期。
您可以使用@InitBinder
格式化日期。
尝试使用类似的内容来格式化日期;
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
sdf.setLenient(true);
binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
}
PS:示例代码取自here。