springboot前端传参date类型后台处理方式
2021/12/16 23:43:26
本文主要是介绍springboot前端传参date类型后台处理方式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
springboot前端传参date类型后台处理方式
先说结论:建议大家直接使用@JsonFormat,原因如下:
1、针对json格式:在配置文件中加以下配置
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8
2、针对form表单格式,加下面这句配置就可以
spring.mvc.dateFormat = yyyy-MM-dd HH:mm:ss
3、也可以在pojo中对特定的date类型属性加了以下配置
@DateTimeFormat来控制入参,@JsonFormat来控制出参 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
4、前端以字符串的形式给后台传递带有格式的 日期 和 数字 数据,导致后台无法解析数据:
解决方法:
总结:
1.如果前后端传的数据都是json格式,那么后台接数据,传数据都可以用@JsonFormat ;
2.@DateTimeFormat适合后端接收前端传来的数据,不管是不是json格式都可以正确转换成Date型数据,只要前端传来的格式正确且后端@DateTimeFormat的pattern写正确。但是,这个注解无法将Date型数据用json传到前端去
综上所述,建议大家直接使用@JsonFormat
Springboot的bean实体类接收Date类型
@GetMapping("/test") public ResponseResult docList(QueryListParam queryListParam) { return testService.queryList(queryListParam); }
@Data public class QueryListParam implements Serializable { /** * 姓名 */ private String name; /** * 起始时间(接收不到,会报错) */ private Date startTime; /** * 结束时间(接收不到,会报错) */ private Date endTime; }
GET请求直接传递 startTime=2020-01-01 01:10:00 是接收不到了,后台会报错,需要在bean中Date类型的属性上添加注解@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
该注解是org.springframework.format.annotation下的
@Data public class QueryListParam implements Serializable { /** * 姓名 */ private String name; /** * 起始时间,接收成功 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; /** * 结束时间,接收成功 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; }
但是不用这种方法,用String进行接收,在用SimpleDateFormat进行转换。
这篇关于springboot前端传参date类型后台处理方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?