当前位置: 代码迷 >> 综合 >> @RequestBody 400以及日期注解前后端转换
  详细解决方案

@RequestBody 400以及日期注解前后端转换

热度:78   发布时间:2024-01-25 11:30:49.0

@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;
  相关解决方案