序言:在上面提到使用的是SSM框架下的项目,这里也可以指的是在此基础上的所有框架(例如:Spring Boot等);下面只是简单的一个报错原因解决方式,如果在传参时出现了错误,可以考虑下是否是这种情况
目录
原因:
问题:为什么后端使用了LocalDateTime类型的参数进行传值出现错误?
<1>(在SSM框架或者其基础之上的框架下解释)
<2> 我们知道后端在传递前端消息时,用的是json串传递;如果用json串传递的话,那么在使用maven的pom文件配置上,需要添加上几个支持json传递的依赖(这里不在展列,如果不了解maven工具的话《用的还是古老形式添加jar包的话,那么也不影响看下面的解释》.
因为在添加的json传递依赖中含有下面图片中的这3个,又因为下面的jackson库在默认情况下不支持Java8的LocalDateTime类型的序列化和反序列化(因此也就是不支持这种特殊类型的传递).
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.2</version>
</dependency>
解决:
简单的解决:
粗暴的解决办法就是:(不需要杀死太多脑细胞)
将localDateTime的值转换成字符串的形成,这样就可以进行序列化和反序列化了,然后通过json通道传递给前端(注意一下:传递给前端也是字符串的类型,需要的话前端可以在转换为时间类型)
较为复杂的解决:
<1> 添加 com.fasterxml.jackson.datatype:jackson-datatype-jsr310
依赖;
<2> 自定义序列化和反序列化的行为;
<3> 当你完成前两个步骤之后,解决了传递报错后,还会出现一个小问题,
那就是传递给前端的时间格式不一致(还需要近一步解决)
(有点小麻烦)这三个步骤就暂时不在这里叙述了
(我有点懒,你们可以通过我给你们的这三个步骤,进一步询问智能工具解决)
最后,就解决问题了。
借鉴:https://zhuanlan.zhihu.com/p/677349464
我的博客任务就是解决各种疑难杂症,如果还有其他问题可以到我的主页查看
并且可以留言,我会不时的进行解决问题。
遇见你是我的幸运,希望下次再见 bye