SpringMVC @RequestBody 参数映射不上,@RequestBody 报错

最近代码遇见了一个springmvc中的小问题,算是很基础的东西,同事问我后我有有些迷惑上网找了一些资料后弄清楚了。特此记录一下springmvc注解@requestbody来传递参数映射一个对象。

SpringMVC @RequestBody 参数映射不上,@RequestBody 报错_第1张图片

言归正传问题是这样的:

使用postMan 发送httppost 请求:

SpringMVC @RequestBody 参数映射不上,@RequestBody 报错_第2张图片最后报错。

 

报错原因:

在使用postMan发送post请求的时候没有选择如下:

 

 

也就是下面说的需要注意的地方需要注意的地方是:

1.前端做保存操作的时候提交了很多参数过来,前端代码提交的时候content-type改成application/json,后台也配置了一个针对spring4的son类型的httpmessageConverter,

@RequsetBody 绑定的数据类型 :

一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。

  • GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。
  • POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用HandlerAdapter 配置的HttpMessageConverters来解析HttpEntity中的数据,然后绑定到相应的bean上。

 

 

1,使用@RequestBody 前后端参数要匹配个数不能少。字段名字要一样

2,检查配置文件spring的版本。对应的 spring4 的版本的适配器 对应的:

请用org.springframework.http.converter.json.MappingJacksonHttp2MessageConverter ,选择的这种配置用的是jackson2.X版本的,用来解析json数据。

SpringMVC @RequestBody 参数映射不上,@RequestBody 报错_第3张图片

spring 3.x的对应的版本:

org.springframework.http.converter.json.MappingJacksonHttpMessageConverter 
这种配置用的是jackson1.X版本的,

3,必须要在请求头中声明数据的类型Content-Type

4,前端json数据和后端json数据 首字母不要大写,首字母大写映射不上,以驼峰格式命名。

你可能感兴趣的:(SpringMVC,@RequestBody)