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

@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;

而Jackson也提供了一个针对前后端日期格式转换的注解

 /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date addTime;

同时Jackson还会遇到一个问题就是转换后的时间采用时间是非东八区,所以如果是有对东八区时间需求的话还要加一个注解属性

/**
     * 创建时间
     */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date addTime;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值