背景:
beetl是前端的一个框架,在近期我要将一个需求进行前后端分离,这里我使用cloud来进行.
分别为消费者和提供者,但是遇到一个问题,那就是消费者这一边在请求提供者并接收到了参数后,我通过beetl的request数据共享给前端的话,会发现页面通过${datevariable,“yyyy-MM-dd HH:mm”}进行格式化时,会报错.
原因:
起初我以为是beetl哪里出错了,但是实在找不出来.于是我把提供者和消费者的数据对象分别用system.out.println()来输出,发现了不同之处.
那就是服务提供者这一方的日期格式为’Wed Sep 30 18:00:00 CST 2020’,这是可以被Beetl格式化的.
而消费者这一方面的日期格式则变为了’2020-09-30T10:00:00.000+0000’,这个肯定不能被beetl格式化的.
那么我就在找原因,为什么在日期格式上,服务提供方的数据内容和消费者的数据内容会不同.我注意到了一个问题,那就是在微服务cloud中,服务提供方是需要把数据对象转换为json返回给消费者的,而消费者则是根据获取到的json来进行封装.这之间需要用到的注解就是@RestController.
解决:
那么我想我知道答案了,日期格式之所以不同,就是@RestController在返回时将其转换为了json才导致日期格式不同。那么就需要在application.yml中对基于jackson的JSON转换机制进行配置。不过这样一来,前端beetl也就省去了转换格式这一步骤了。
jackson日期格式统一处理配置教程:https://blog.csdn.net/chinatopno1/article/details/108962726