在SSM框架下的项目,后端在传递给前端值时,如果包含LocalDateTime类型的参数值,运行时将会报错

序言:在上面提到使用的是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

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值