【发布时间】:2019-02-17 18:39:40
【问题描述】:
我有一个表格:
<form method="post" action="/addExpense">
<input type="text" name="description" required>
<input type="number" name="amount" required>
<input type="date" name="created" required>
<input type="date" name="updated" required>
<input type="submit">
</form>
在我的控制器中我有一个方法:
@RequestMapping(value = "addExpense", method = RequestMethod.POST)
@ResponseBody
public String addExpense(@ModelAttribute("expenseDetailDTO") ExpenseDetailDTO expenseDetailDTO) {
expenseService.addExpense(expenseDetailDTO);
return "true";
}
ExpenseDetailDTO 内容:
public class ExpenseDetailDTO {
String description;
Long amount;
Date created;
Date updated;
...
}
当我在 throws 400 Bad Request 中提交表单时。在 chrome 开发工具中检查表单数据时,它会显示:
description:description
amount:500
created:2016-01-01
updated:2016-01-01
我认为 Spring 无法从 java.util.Date 中的表单转换日期。
如何将日期传递给控制器?
编辑:
为 DateTimeFormat 添加注释:
public class ExpenseDetailDTO {
String description;
Long amount;
@DateTimeFormat(pattern = "yyyy-MM-dd")
Date created;
@DateTimeFormat(pattern = "yyyy-MM-dd")
Date updated;
....
}
仍然给出 400 Bad Request。
【问题讨论】: