前端向后台传递参数主要分两类:Get方式的URL路径传参和Post方式的Body请求体传参
1、URL传参数:/getParam?age=1&username="封于修"
2、Post方式的Body请求体传参: contextType = “application/x-www-form-urlencoded” contextType = “application/json”
@GetMapping
注解标记的Handle,SpringMVC参数处理只能解析Get请求中的key=value
对,无法解析请求体body区域的application/x-www-form-urlencoded和application/json
格式的数据
@PostMapping
注解标记的Handle,能解析Get
请求中的key=value
对和解析请求体body
区域的application/x-www-form-urlencoded
(from表单提交的数据 key1=val1&key2=val2 )格式数据,如果两者都存在参数相同的数据,则都解析。
测试代码:controller
接口测试:
响应结果:
如果需要支持解析application/json
格式的数据,需要使用注解@RequestBody
的支持,告诉SpringMVC使用RequestResponseBodyMethodProcessor
处理器解析器解析
前端传参:
/getParam?a1=1&a2=2&a3=3&a4=4&a5=5&a6=6&a7=0&a8=a
后端接收入参:
@GetMapping("/getParam")
public R testGetParam(byte a1, short a2, int a3, long a4,
double a5, float a6,
boolean a7,
char a8) {
System.out.println("a1: "+ a1);
System.out.println("a2: "+ a2);
System.out.println("a3: "+ a3);
System.out.println("a4: "+ a4);
System.out.println("a5: "+ a5);
System.out.println("a6: "+ a6);
System.out.println("a7: "+ a7);
System.out.println("a8: "+ a8);
return success(null);
}
建议都使用对应的包装类型,前端未传入的值包装类型默认为null。基本数据类型前端未传入值,后端报错
前端传参:
url参数: /postParam?age=1,2,3
请求体参数: body = “username=步惊云,风雨”
后端接收入参:
@PostMapping("/postParam")
public R testPostParam(Integer[] age, String[] username) {
System.out.println("age: "+ Arrays.toString(age));
System.out.println(Arrays.toString(username));
return success(null);
}
@RequestParam和@RequestBody的区别
1、@RequestParam
可以取get方式的url路径参数和post方式的body类型为contextType = "application/x-www-form-urlencoded"
的参数
2、@RequestBody
只能取post方式的body类型为contextType = "application/json"
的参数
3、 @RequestBody
无法直接解析基本数据类和对应的包装类型,能解析对象类型: String、JavaBean、List、Set、Map
后端接收入参:
@PostMapping("/postJsonListParam")
public R postJsonListParam(@RequestBody List<Map> map) {
return success(map);
}
后端接收入参:
@PostMapping("/postJsonMapParam")
public R postJsonMapParam(@RequestBody Map map) {
return success(map);
}
项目开发建议使用(@RequestBody 实体)
接收,偷懒的情况可以使用(@RequestBody Map)
,Map接收一切对象,解决任何复杂对象的接收
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_45297578/article/details/125903678
内容来源于网络,如有侵权,请联系作者删除!