Thymeleaf和SpringBoot - 无法将类型[java.lang.String]的属性值转换为prope所需的类型[java.util.Date]

时间:2016-12-07 04:25:53

标签: spring-boot datepicker thymeleaf

我正在使用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方法之前发生错误。

任何帮助将不胜感激!提前谢谢!

1 个答案:

答案 0 :(得分:3)

在您的控制器中:

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"), true));
}

WHERE“MM / dd / yyyy”是您正在使用的日期格式。