当我们在后端需要接收一个复杂对象或者一个list对象时,经常需要用到requestBody来帮助我们将请求参数绑定到我们接收的对象上,requestBody将请求参数变成json串放到body里面,这样参数绑定简单快捷,通过ObjectMapper就将我们的参数绑定的事情都搞定了。
但是使用requestBody经常会报400错误,400的错误意味着请求参数不符合后台接收参数的要求,如果我们使用log4j来打印日志,如果只是info级别,我们会什么都看不到。但是将日志级别调成debug,就会清楚的显示错误类型到底是什么。
如果前台请求的参数里面包含了我们后台接收参数的对象里面不包含的属性时,也会报400错误,比较简单的做法是在接收的对象上加上@JsonIgnoreProperties(Ignore="true")即可,当然,也可以在配置文件里面将ObjectMapper换成我们自己写的MyObjectMapper也可以,在MyObjectMapper里面重写一下它参数绑定的方法即可。