Field error in object ‘employee‘ on field ‘emBirth‘: rejected value [yyyy-MM-dd];

本文分享了如何在SpringBoot应用中遇到日期格式问题时,通过在配置文件中设置`spring.mvc.date-format`为'yyyy-mm-dd'来解决,确保日期显示一致性。

错误:
在这里插入图片描述
原因:使用springboot的日期格式出错误
解决方案:在springboot的配置文件中添加spring.mvc.date-format=yyyy-mm-dd设置日期格式

解决 SpringEL 表达式异常 `#temporals.format(lotteryList.openTime, 'yyyy-MM-dd')` 和对象 `lottery` 的 `openTime` 字段错误 `rejected value [2025-08-30]` 可从以下方面着手: ### 检查 `openTime` 字段类型 `#temporals.format` 方法通常要求传入的日期对象是 Java 8 的时间类型(如 `LocalDate`、`LocalDateTime` 等)。若 `lottery` 对象的 `openTime` 字段不是这些类型,就会引发异常。若 `openTime` 是 `Date` 类型,可将其转换为 `LocalDateTime` 类型: ```java import java.util.Date; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; public class Lottery { private Date openTime; public LocalDateTime getOpenTimeAsLocalDateTime() { if (openTime != null) { Instant instant = openTime.toInstant(); return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } return null; } // 其他 getter 和 setter 方法 public Date getOpenTime() { return openTime; } public void setOpenTime(Date openTime) { this.openTime = openTime; } } ``` 在 Thymeleaf 模板中使用转换后的方法: ```html <td th:if="${lottery.openTimeAsLocalDateTime != null}" th:text="${#temporals.format(lottery.openTimeAsLocalDateTime, 'yyyy-MM-dd')}"></td> <td th:if="${lottery.openTimeAsLocalDateTime == null}">暂无开放时间</td> ``` ### 检查 `openTime` 是否为 `null` 若 `lottery.openTime` 为 `null`,`#temporals.format` 方法会抛出异常。可在视图中添加空值检查: ```html <td th:if="${lottery.openTime != null}" th:text="${#temporals.format(lottery.openTime, 'yyyy-MM-dd')}"></td> <td th:if="${lottery.openTime == null}">暂无开放时间</td> ``` ### 检查日期格式字符串 确保日期格式字符串 `'yyyy-MM-dd'` 正确。若格式字符串有误,也会导致异常。 ### 检查数据绑定和验证 对象 `lottery` 的 `openTime` 字段错误 `rejected value [2025-08-30]` 可能是数据绑定或验证问题。要确保前端传递的数据格式与后端 `openTime` 字段类型匹配。若使用 Spring 的 `@DateTimeFormat` 注解,要确保注解配置正确: ```java import java.time.LocalDate; import org.springframework.format.annotation.DateTimeFormat; public class Lottery { @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate openTime; // getter 和 setter 方法 public LocalDate getOpenTime() { return openTime; } public void setOpenTime(LocalDate openTime) { this.openTime = openTime; } } ``` ### 检查 Thymeleaf 配置 确保 Thymeleaf 配置正确,并且支持 Java 8 的时间类型。通常在 Spring Boot 项目中,默认配置就支持这些类型。若使用自定义配置,要确保包含了必要的方言和处理器。 ### 检查依赖 确保项目中包含了必要的依赖,如 Thymeleaf 和 Java 8 时间相关的依赖。在 Maven 项目中,可添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值