@RequestBody 400以及日期注解前后端转换
前两天遇到一个问题,记录下
在用Ajax向后端传数据时,一直报空指针错误,打断点发现断点根本没有进去,这是因为@RequestBody是把Json格式的字符串自动填充到带有注解的类里,但是前端需要做一个操作把属性转换成Json格式,
//把需要传入的变量全部放进去obj={investmentId:id};//在Ajax中进行格式转换
data:JSON.stringify(obj)
另外一个400的错误大部分是因为请求和选择的不一致,比如前端的请求方式为POST后端指定为GET,或者后端接收变量没有加@RequestBody注解也会导致400
然后就是日期转换的问题
因为后端传入前端的日期通常是一个long,而前端传入后端的是字符串,这时除了自己写代码进行转换外还可以使用两个注解,
对于前端传入的字符串格式,Spring框架提供了转换的注解
比如下面,Pattern指定转换的格式
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date startDate;
而对于后端传入前端的long类型转换为字符串的日期类型,可以使用Jackson的@JsonFormat,pattern则是把long转换为制定格式的日期字符串
/*** 创建时间*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )private Date addTime;