网站首页 > 精选教程 正文
问题描述
前端使用dayjs进行日期格式化,后端java SpringBoot应用采用Jackson库的@JsonFormat标注进行字符串到日期类型的自动转换,但是调用时却提示如下错误:
"Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'beginDate'; Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat java.util.Date] for value [2023-01-01 00:00:00]"
根因定位
@JsonFormat注解时需要先通过@RequestBody将入参参数映射到实体后,@JsonFormat注解才能去对时间格式进行约束,因为RequestBody注解主要针对Post请求,所以对Get请求无效,所以如果请求是Get请求,那么必然会出现上述错误。
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),所以只能发送POST请求。
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
解决方案
方案1:将请求改为Post请求,在Controller方法上增加@RequestBody处理
方案2:在Java对象的属性上使用SpringBoot的另外一个标签@DateTimeFormat
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date beginDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date endDate;
- 上一篇: 用json写vue前端,更容易让后端接受
- 下一篇: java 实现通过mqtt发送JSON格式的数据
猜你喜欢
- 2025-01-05 什么是JSON?
- 2025-01-05 SpringBoot读取资源目录中的JSON文件方法
- 2025-01-05 Fastjson妙用之@JSONField注解
- 2025-01-05 程序员必备的JSON到代码的快速转换神器,支持多种语言(C#、Go、Swift、C++、Java、TypeScript 等)
- 2025-01-05 Java安全-Java Vuls(Fastjson、Weblogic漏洞复现)
- 2025-01-05 Jackson 反序列化必修课:未知属性的"坑",你踩对了吗?
- 2025-01-05 一文带你认识目前最快的Java框架:Vert.x
- 2025-01-05 @JsonProperty详细说明
- 2025-01-05 Java 反射 和 Java new 的效率有什么区别,亲测相差100倍
- 2025-01-05 Python技能:JSON文件的语法和解析
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)