{
"timestamp": "2024-02-29T07:09:04.687+00:00",
"status": 400,
"error": "Bad Request",
"path": "/api"
}
以上就是报错400,原因就是在于没有给日期的入参和出参进行规范化。
那么我们首先打开实体类,对日期的入参和出参添加规范。例如:
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startdate;
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date enddate;
在上述代码中我们可以看到两个注解,其中DateTimeFormat注解是对入参进行规范化,而JsonFormat注解是对出参进行规范化,除此之外,我们还需要在Controller层下对应的api里添加对于日期字段的注解,例如:
@RequestMapping("api")
public boolean editwintercamp(@DateTimeFormat(pattern = "yyyy-MM-dd") Date startdate, @DateTimeFormat(pattern = "yyyy-MM-dd") Date enddate){
return ws.editwintercamp(campid,startdate,enddate,location,description);
}
最后就能实现我们想要的效果了。而不会报400的错误。这里我想要的格式是yyyy-MM-dd而还有别的格式,比如yyyy-MM-dd HH:mm:ss等也可以根据需要进行对应的调整。
在控制器层添加注解原因
添加DateTimeFormat注解就是为了给Spring框架如何将请求日期字符串转换成Date类型的对象,如果不加这个注解,Spring将按照默认日期格式转换,可能会出现日期字符串与系统不匹配导致转换失败抛出400错误。
添加这个注解就能够规避这个问题和400报错。