我正在使用Thymeleaf和SpringBoot构建Web应用程序,我对这两种技术都不熟悉。
在我的html文件中,有一个Date字段,如下所示:
<input type="date" th:field="*{issueDate}" />
我的模型类有一个对应于issueDate的字段,如下所示:
@NotNull(message = "Cannot be empty")
private Date issueDate;
当我从UI输入日期时,我在浏览器中看到以下异常:
Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property issueDate;
根据我的经验,我理解UI将属性读取为String,但模型期望出现错误的类型Date。所以我需要将String转换为Date。但是应该在哪里做呢?由于甚至在调用模型中的setter方法之前发生错误。
任何帮助将不胜感激!提前谢谢!
答案 0 :(得分:3)
在您的控制器中:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"), true));
}
WHERE“MM / dd / yyyy”是您正在使用的日期格式。