最全springboot传递参数方案
前后端传递参数方案主要分为
- 有实体和无实体
- 传递的ContentType类型为application/json还是application/application/x-www-form-urlencoded(jquery默认类型)
- 多参数和无参数
- json对象或者是json的字符串对象
springboot的接收参数的方法主要有四种
- @RequestParam 必须接收json对象,前端contentType类型为application/application/x-www-form-urlencoded格式
- @RequestBody 接收json形式的字符串,前端contentType必须为application/json格式
- @PathVariable 路径参数
- 复杂类型直接使用JSON工具包解析requset.getParameter()字符串
对于前端传递数组,后端需要使用
@RequestParam(value = "ids []") List<Integer> ids
原理介绍
@RequestParam使用的是json对象,基于key-value格式读取数据,因此可以接收单个参数,只要名称可以对上,jquery的默认格式就是{}形式的json对象
@RequestBody使用的是request.getParameter()获取字符串,然后Jackson进行解析获取json对象,因此无法接收单个参数,且必须和application/json格式的数据搭配