spring mvc 中@RequestBody注解的作用

您所在的位置:网站首页 java注释的作用是什么 spring mvc 中@RequestBody注解的作用

spring mvc 中@RequestBody注解的作用

2024-06-22 15:29| 来源: 网络整理| 查看: 265

一.@RequestBody的作用

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),所以只能发送POST请求。

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。

在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。

jQuery中,$.ajax()默认发送的参数类型及编码为:application/x-www-form-urlcoded,而@RequestBody处理的参数类型及编码为:aplication/json或者是application/xml,通过contentType属性来指定

在传递之前,对JSON对象要使用JSON.stringify(),JSON.stringify() 方法将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串

后端@RequestBody注解对应的类在将HTTP的输入流(含请求体)装配到目标类(即:@RequestBody后面的类)时,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值 符合(或可转换为)实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。

注:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素、        数组、集合、对象等等(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收        参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value        里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。

参考地址:@RequestBody的使用_justry_deng的博客-CSDN博客_@requestbody

二.实现案例

1.jsp页面

Title var userList=new Array(); userList.push({userName:"beijing",age:34}); userList.push({userName:"shanghai",age:89}); $.ajax({ type:"post", url:"${pageContext.request.contextPath}/bike7", data:JSON.stringify(userList), contentType:"application/json;charset=utf-8", success:function(result){ alert(result); } })

2.controller

/** * @author liujianfu * @description controller中业务方法的集合参数获取,要将集合参数封装到一个pojo中才可以 * 参数属性名与请求参数名称一致,参数值会自动映射匹配 * @date 2021/1/10 22:14 * @param * @return */ @RequestMapping("/bike6") public String bike6(){ System.out.println("controller6:"); return "ajax"; } /** * @author liujianfu * @description controller中业务方法的集合参数获取,要将集合参数封装到一个pojo中才可以 * 参数属性名与请求参数名称一致,参数值会自动映射匹配 * @date 2021/1/10 22:14 * @param * @return */ @RequestMapping("/bike7") @ResponseBody public String bike7(@RequestBody List userList){ for(User u:userList){ System.out.println("user:"+u.getUserName()); } return "ok"; }

3.spring-mvc 配置文件

4.页面访问



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3