问题描述
400报错:(日期格式转换错误)
(1)前端传的参数类型或者名称与后台接收参数的实体类的属性类型或者名称不一致; (2)前端提交ajax请求的数据应该是json格式字符串的,但是却没有将对象转换成json格式的字符串(3)javaBean中的成员变量类型为Date类型,前端正常会传入yyyy/MM/dd格式,但是会报400错误,就需要用在后台用到到格式转换的方法
{
"timestamp": "2022-11-13T13:01:45.770+00:00",
"status": 400,
"error": "Bad Request",
"path": "/add"
}
原因分析:
前端传的参数类型或者名称与后台接收参数的实体类的属性类型或者名称不一致;
解决方案:
在后台controller类中添加此下代码
@InitBinder
public void initBinder(HttpServletRequest request, ServletRequestDataBinder binder){
String birdate = request.getParameter("birdate");
if (birdate.contains("/")) {
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
//true:该参数允许为null
CustomDateEditor editor = new CustomDateEditor(format, true);
binder.registerCustomEditor(Date.class, editor);
}
else if (birdate.contains("-")) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor editor = new CustomDateEditor(format, true);
binder.registerCustomEditor(Date.class, editor);
}
}