1.问题描述
访问的地址是:http://localhost:8080/XXX/addUser
先看浏览器访问效果:
前后台都未报错:
在浏览器地址栏输入url:http://localhost:8080/XXX/addUser?username=xiaoming&birth=2019-05-03
浏览器状态码为400。
2.发现问题
解释一下状态码400的含义:
于是我尝试分别传不同的参数,终于发现问题是前端向后端传递的是日期字符串,后台接参数的birth字段是Date类型,也就是前台传的日期字符串跟后台Date类型的属性不能正确绑定,所以才出现上述问题。
之前前台为了获取日期字符串,使用了@JsonFormat注解。
3.解决方法
添加@DateTimeFormat(pattern=”yyyy-MM-dd”)注解。
4.总结
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=”GMT+8″)的作用是使后台向前台传递Date类型的参数时,将Date类型转换为日期字符串。
@DateTimeFormat(pattern=”yyyy-MM-dd”) 的作用是使后台接收前台的日期字符串,将日期字符串转换为Date类型对象。