当前位置: 首页 > 知识库问答 >
问题:

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

云飞翮
2023-03-14

我正在使用Thymeleaf和SpringBoot构建一个web应用程序,我对这两种技术都是新手。

在我的html文件中,有一个日期字段,如下所示:

<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将属性读取为字符串,但模型期望出现错误的类型日期。所以我需要将字符串转换为日期。然而,这应该在哪里进行?因为错误甚至在调用模型中的setter方法之前发生。

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

共有1个答案

楚灿
2023-03-14

在您的控制器中:

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

其中“MM/dd/yyyy”是您使用的日期格式。

 类似资料: