最近在学习Java,有前辈知道怎么把前台传的日期封装到后台吗?
本帖最后由 KangMz 于 2022-3-21 20:42 编辑感谢大家,我好像有点搞明白了。
这个是我学习java在网上随便找的项目。这个项目里可能是为了学习的目的,把某些ID和日期用jackson搞了一下混淆,然后自定义了一些注解,用在那些混淆的字段上才行。
所以用了大家告诉我的方法一直绑定不上去。。。。
------------------------------------------------前台用的是elementUI的组件
c
发生的请求是这样的标准时间格式
后台用的是springmvc,用的pojo接收数据,也加了@requestbody。其他的数据都可以正常封装,但是就是这个时间date类型绑定不了。后台接收的为null。而且控制台也没有报错。
baidu了一下,网上说在参数上加个@DateTimeFormat注解就可以了,但是试了下还是不行,后来又看到说@DateTimeFormat对于请求体是json格式的情况下无效。
又baidu了一下,看到说用@JsonFormat注解就可以了。。然后我又试了一下,还是不行。一直是null,绑定不了。
不过只要我把类型Date改成String的话就可以正常封装了。。。但是我就是想要封装成Date类型。
有前辈知道怎么搞嘛。。。求指教
先接收字符串,然后再转Date @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JSONField(format="yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
从我项目里面拿的一段代码,可以试试 请使用java.util.Date声明Date属性 什么时候 参数可以 自动转换了? publish_time publishTime? 1.前端转指定格式的字符串,后端用字符串接受,在处理
2.@DateTimeFormat可以尝试使用这个注解 前端组件可以统一把时间个格式处理,虽然后端也可以 ashergo 发表于 2022-3-21 09:30
什么时候 参数可以 自动转换了? publish_time publishTime?
确实,我认为也是前后端字段不一致导致的,而不是字段类型导致的,后端是可以用Date类型进行接收的,如果要求前端字段大小写也一致,后端属性上可以加个JsonProperty 日期这种的 用时间戳接受比较好处理