前端 Thymeleaf 傳回日期
但控制台報錯
Field error in object 'expense' on field 'date': rejected value [2021-03-28]; codes [typeMismatch.expense.date,typeMismatch.date,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [expense.date,date]; arguments []; default message [date]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2021-03-28'; nested exception is java.lang.IllegalArgumentException]]
原因
前端傳的是 String,後端 entity 存 Date 造成不匹配。
解決
bean 的 date 屬性加上註解
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
亦可使用以下註解
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
將會以 ISO 8601 格式轉換日期