我有一个关于Spring + Thymeleaf日期格式的问题。我有一个简单的实体与LocalDate date领域。我想以表单形式从用户那里获取此日期并将其保存到MySQL数据库。我收到这样的错误:
LocalDate date
无法将类型java.lang.String的属性值转换为属性日期所需的类型java.time.LocalDate;嵌套异常是org.springframework.core.convert.ConversionFailedException:无法从类型java.lang.String转换为值2019-04-30的类型java.time.LocalDate。嵌套的异常是java.time.format.DateTimeParseException:无法在索引2处解析文本2019-04-30
我的实体:
@Entity @Table(name="game") public class Game{ @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; @Transient private User gameOwner; private LocalDate date; private LocalTime time; //other fields
胸腺视图/形式:
<form action="#" th:action="@{/games/addForm}" th:object="${gameForm}" method="post"> <p>Date: <input type="date" th:field="*{date}" /></p> </form>
这个问题的原因是什么?也许还有其他更好的存储日期的方法吗?
问题解决了..我不知道为什么,但是将模板更改为:
<input type="date" th:value="*{date}" th:field="*{date}" />
并添加@DateTimeFormat(pattern = "yyyy-MM-dd")到实体字段即可解决该问题。
@DateTimeFormat(pattern = "yyyy-MM-dd")