1、@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。

  2、通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然也可以将其分别绑定到对应的字符串上。

    例如说以下情况:

$.ajax({       url:"/login",       type:"POST",        data:'{"userName":"admin","pwd","admin123"}',      content-type:"application/json charset=utf-8",        success:function(data){          alert("request success ! ");       }    
});
 @requestMapping("/login")    public void login(@requestBody String userName,@requestBody String pwd){      System.out.println(userName+" :"+pwd);    
}

这种情况是将JSON字符串中的两个变量的值分别赋予了两个字符串,但是呢假如我有一个User类,拥有如下字段:
      String userName;
      String pwd;
    那么上述参数可以改为以下形式:@requestBody User user 这种形式会将JSON字符串中的值赋予user中对应的属性上
    需要注意的是,JSON字符串中的key必须对应user中的属性名,否则是请求不过去的。

 3、在一些特殊情况@requestBody也可以用来处理content-type类型为application/x-www-form-urlcoded的内容,只不过这种方式不是很常用,在处理这类请求的时候,@requestBody会将处理结果放到一个MultiValueMap<String,String>中,这种情况一般在特殊情况下才会使用,例如jQuery easyUI的datagrid请求数据的时候需要使用到这种方式、小型项目只创建一个POJO类的话也可以使用这种接受方式。

作用:

i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

使用时机:

A) GET、POST方式提时, 根据request header Content-Type的值来判断:

  • application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
  • multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
  • 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

B) PUT方式提交时, 根据request header Content-Type的值来判断:

  • application/x-www-form-urlencoded, 必须;
  • multipart/form-data, 不能处理;
  • 其他格式, 必须;

说明:request的body部分的数据编码格式由header部分的Content-Type指定;

SpringMVC之@requestBody的作用相关推荐

  1. @ResponseBody 和 @RequestBody 的作用

    先提一嘴 @RequestMapping("url"),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址. 代码: @Reques ...

  2. lombok 的bug?lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败

    大家好,我是烤鸭:     lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败.     环境版本:         spring 5.x ...

  3. SpringMVC中 -- @RequestMapping的作用及用法

    一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...

  4. SpringMVC 之@RequestBody 接收Json数组对象

    1. 摘要 程序流程: 前台使用ajax技术,传递json字符串到后台: 后台使用Spring MVC注解@RequestBody 接受前台传递的json字符串,并返回新的json字符串到前台: 前台 ...

  5. html标签转换的好处,springmvc htmlEscape标签的作用

    有些东西自己不知道就想要弄明白 唉   做项目 看人家项目中用到啦 不会 不知道 就百度啦 整理了一下 方便自己记忆 一.SpringMVC 表单元素标签 如下: 其中的属性 htmlEscape的作 ...

  6. springMvc视图解析器作用

    我们在配置springMVC时通常会配置如下代码段: <!-- 视图解析器 -->     <bean class="org.springframework.web.ser ...

  7. springMVC中的ModelMap作用及用法

    概念 ModelMap的作用: ModelMap对象主要用于传递控制方法传递数据到结果页面.类似于request的setAttribute方法的作用. 所以我们要想在jsp页面获取数据,只要将数据放到 ...

  8. SpringMVC中@ResponseBody和@RequestBody的使用

    - @ResponseBody:该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给 ...

  9. SpringMVC过程中@RequestBody接收Json的问题 总是报415

    在SpringMVC中用@RequestBody接收Json的问题,总是报415,经过一翻查找 前台js的post: var postdata = '{"title":" ...

最新文章

  1. You must restart adb and Eclipse问题的解决
  2. 使用Asible批量部署yum仓库
  3. Python 一行代码搞定炫酷可视化,你需要了解一下 Cufflinks
  4. VTK:可视化之AlphaFrequency
  5. Shell数组相关操作
  6. JDK源码解析之 java.lang.Integer
  7. 征服 Ajax 应用程序的安全威胁
  8. 徐烨:这20年,我与应用系统的“云化”之路
  9. 多渠道归因分析:互联网的归因江湖(二)
  10. Flutter TextField设置默认值默认值和光标位置
  11. ms Sql server 中的getDate()函数使用方法总结
  12. RAW-socket
  13. Citrx XenDesktop 7 实施五 配置 XenDesktop Delivery Controller
  14. 开发游戏引擎需要具备什么
  15. 计算机之父的童年故事教案,计算机之父童年的故事教案
  16. 王家林 大数据Spark超经典视频链接全集[转]
  17. Only variable references should be returned by reference
  18. 分蛋糕、思路视频(动态规划)
  19. 如何使用计算机上合并计算方法,Excel2019中合并计算的使用方法
  20. det3d python setup.py build develop

热门文章

  1. Pandas高级教程之:统计方法
  2. Spring5参考指南:依赖注入
  3. 容器学习 之 自定义容器网络(十三)
  4. JUC原子类-引用类型(四)
  5. 容器源码解析之HashMap(七)
  6. Vue指令篇_v-for_列表渲染
  7. jQuery事件4——hover
  8. 下面可提供安全电子邮件服务的是()【最全!最详细解析!!】
  9. 未能加载文件或程序集或它的某一个依赖项_手写一个miniwebpack
  10. WIN7如何更改计算机名称