springboot接收参数的几种方式 ゝ一世哀愁。 2024-03-30 13:20 12阅读 0赞 ## 1、四种传参方式 ## ### 1.1、params ### * 传参格式:?号传参,在地址栏上加参数 http://localhost:8080?参数名=值&参数名=值 ### 1.2、body ### * 传参格式:请求体传参 http://localhost:8080/core/books > form-data的请求是在body中,为key=value格式,同时可以传文件,Content-Type为multipart/form-data,后端可以用@RequestParam接收。 ### 1.3、json ### ![在这里插入图片描述][22fef4ee6b3c46c5a6373bbdc9e07cf6.jpeg_pic_center] > json传参也是在body当中,只不过json是一种数据格式,后端可以用@[RequestBody][]接收。 ### 1.4、地址栏 ### > 地址栏传参,直接通过/在地址上拼接参数值,这种方式不需要在地址栏上写参数名,后端只需要知道他在地址的哪个位置传的参数就可以拿到值 ## 2、springboot接收参数的几种方式 ## ### 2.1、@RequestParam ### * 作用:将指定的请求参数赋值给方法中的形参 * 接收形式: 一般用于Get请求 * 属性: * value:绑定请求的参数名,默认绑定为同名的形参 * required:是否必填,默认是true,表示请求中一定要有相应的参数,否则将报400 * defaultValue:设置默认值,表示如果请求中没有接收到值时的默认值 * 参数映射:默认是以变量名作为前端传参名称,但是假如我们注解设置了名称,那么参数名称以注解当中的属性为准,如果前端传test而不是test1就会报异常 * 示例: @GetMapping("/test") public String test(@RequestParam("test1") String test) { return msg; } * **总结:?号传参 的方式,传单个参数的时候使用;如果传实体类或多个参数时, 可以不加`@RequstParm`注解;如果加上`@RequstParm`注解就意味着前端必须传值,因为 `required`属性代表的是否是必填,默认为true;** ### 2.2、@PathVariable ### * 作用:接收请求路径中占位符的值 * 接收形式: 一般用于Get请求 * 示例: @GetMapping("/getInfo/{id}") public void getInfo(@PathVariable Long id) { return lxxBooksService.selectLxxBooksById(id); } * **总结:`@PathVariable` 用于绑定 url 中的占位符,如果不设置属性值,默认参数名称和占位符当中的名称一致,如果不一致就会报错;一旦设置属性值,就要和占位符当中的名称一致** ### 2.3、@RequestBody ### * 作用: 接收前端传递的json对象的字符串 * 接收形式: 一般用于Post请求 * 示例: @PostMapping("/add") public void add(@RequestBody LxxBooks lxxBooks){ return lxxBooksService.insertLxxBooks(lxxBooks); } * **总结:一般被用来接收body中json数据,get、post都可以使用。一般用于post。required默认为true,代表必须传参,否则报错400,允许个别属性不传** [22fef4ee6b3c46c5a6373bbdc9e07cf6.jpeg_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/30/157c08f054c6492186c0d409e64aa04b.jpeg [RequestBody]: https://so.csdn.net/so/search?q=RequestBody&spm=1001.2101.3001.7020
还没有评论,来说两句吧...