本文主要是介绍Field error in object ‘tbPet‘ on field ‘birthday‘: rejected value [2020-07-30]; codes [typeMismatch.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
运行:
完整的报错信息是:
Field error in object ‘tbPet’ on field ‘birthday’: rejected value [2020-07-30]; codes [typeMismatch.tbPet.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [tbPet.birthday,birthday]; arguments []; default message [birthday]]; default message [Failed to convert property value of type ‘java.lang.String’ to required type ‘java.util.Date’ for property ‘birthday’; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value ‘2020-07-30’; nested exception is java.lang.IllegalArgumentException]]
当我在jsp页面接收date信息,回到controller输出的时候出错了,这是说白了是java.lang.String和java.util.Date之间的问题
解决方法共两步:
1、首先需要在maven文件引入joda-time依赖
<!--JsonFormat注解是jackson包里面的一个注解,因此在使用的时候需要引入fasterxml maven的jar包,--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.11.2</version></dependency><!--获取时间的架包--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.3</version></dependency>
2、在实体类添加时间的注解
@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
再运行测试输出成功:
public String getCreation_time() {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");return simpleDateFormat.format(creation_time);}
还有好多方法可以解决这个问题的,若是你有更好的方法也可以在下方留言告诉我
这篇关于Field error in object ‘tbPet‘ on field ‘birthday‘: rejected value [2020-07-30]; codes [typeMismatch.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!