0


【SpringBoot篇】5种类型参数传递&&json数据传参的操作

🎊专栏【SpringBoot】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

在这里插入图片描述
当涉及到参数传递时,Spring Boot遵循HTTP协议,并支持多种参数传递方式。这些参数传递方式可以根据请求的不同部分进行分类。

  • 路径参数(Path Parameters): 路径参数是指在URL路径中的一部分,用于标识资源或指定操作。路径参数通常以{}的形式出现在URL中,如/users/{id},其中id就是一个路径参数。路径参数可以在URL中动态地改变,从而实现对不同资源的操作。使用路径参数时,Spring Boot使用@PathVariable注解将路径参数绑定到方法参数上。
  • 查询参数(Query Parameters): 查询参数通常作为URL的一部分,以?开始,以key=value的形式出现,多个参数之间使用&连接,如/users?id=1&name=John。查询参数主要用于筛选或过滤资源。在Spring Boot中,可以使用@RequestParam注解将查询参数绑定到方法参数上。
  • 请求体参数(Request Body Parameters): 请求体参数是通过HTTP请求体中发送的数据,通常用于传递复杂结构的数据,如JSON、XML等。请求体参数可以包含多个字段,并且可以表示更为复杂的数据模型。在Spring Boot中,可以使用@RequestBody注解将请求体参数绑定到方法参数上。
  • 表单参数(Form Parameters): 表单参数通常使用HTML表单提交的数据,可以通过application/x-www-form-urlencoded或multipart/form-data格式传输。表单参数与查询参数类似,但是通常用于提交数据而不是进行筛选。在Spring Boot中,可以使用@RequestParam注解将表单参数绑定到方法参数上。
  • 请求头参数(Request Header Parameters): 请求头参数包含在HTTP请求的头部信息中,可以用于传递附加的元数据,如鉴权信息、用户代理等。在Spring Boot中,可以使用@RequestHeader注解将请求头参数绑定到方法参数上。

使用理论进行讲解时,我们可以了解这些参数传递方式的原理和用途。根据HTTP协议的规范和Spring Boot的设计,开发人员可以选择合适的参数传递方式来满足业务需求。这些参数传递方式在RESTful API开发中非常常见,可以用于处理各种场景下的数据传输。

🌺普通参数

我们在UserController类中写入这一段代码

@RequestMapping("/commonParamDifferentname")@ResponseBodypublicStringcommonParamDifferentName(@RequestParam("name")String userName,int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return"{'module':'common param different name'}";}

在这里插入图片描述

接收成功
在这里插入图片描述

🌺POJO参数

我们在User类中写入这一段代码

packagecom.example.domain;publicclassUser{privateString name;privateint age;privateAddress address;@OverridepublicStringtoString(){return"User{"+"name='"+ name +'\''+", age="+ age +", address="+ address +'}';}publicAddressgetAddress(){return address;}publicvoidsetAddress(Address address){this.address = address;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age = age;}}

我们在UserController类中写入这一段代码

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递@RequestMapping("/pojoParam")@ResponseBodypublicStringpojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return"{'module':'pojo param'}";}

在这里插入图片描述
运行成功
在这里插入图片描述

🌺嵌套pojo参数

适用于下面这种,可以反复写
在这里插入图片描述

我们在Address类中写入这一段代码

packagecom.example.domain;publicclassAddress{privateString province;privateString city;@OverridepublicStringtoString(){return"Address{"+"province='"+ province +'\''+", city='"+ city +'\''+'}';}publicStringgetProvince(){return province;}publicvoidsetProvince(String province){this.province = province;}publicStringgetCity(){return city;}publicvoidsetCity(String city){this.city = city;}}

在UserController里面写入这一段代码

@RequestMapping("/pojoContainPojoParam")@ResponseBodypublicStringpojoContainPojoParam(User user){System.out.println("pojo嵌套pojo参数传递 user ==> "+user);return"{'module':'pojo contain pojo param'}";}

继续测试
在这里插入图片描述

运行成功
在这里插入图片描述

🌺数组参数

@RequestMapping("/arrayParam")@ResponseBodypublicStringarrayParam(String[] likes){System.out.println("数组参数传递 likes ==> "+Arrays.toString(likes));return"{'module':'array param'}";}

在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

🌺集合参数

@RequestMapping("/listParam")@ResponseBodypublicStringlistParam(@RequestParamList<String> likes){System.out.println("集合参数传递 likes ==> "+ likes);return"{'module':'list param'}";}

在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

🎄json数据传参

我们在SpringMvcConfig里面加入这一段代码

@EnableWebMvc

,开启json数据自动转换

在这里插入图片描述

🛸json格式

我们找到上面 集合参数 的代码,把@RequestParam修改为@RequestBody

@RequestMapping("/listParamForJson")@ResponseBodypublicStringlistParamForJson(@RequestBodyList<String> likes){System.out.println("list common(json)参数传递 list ==> "+likes);return"{'module':'list common for json param'}";}

在这里插入图片描述

这里选择json,在下面写入数据
在这里插入图片描述

发现可以运行成功
在这里插入图片描述

🛸嵌套json格式

@RequestMapping("/pojoParamForJson")@ResponseBodypublicStringpojoParamForJson(@RequestBodyUser user){System.out.println("pojo(json)参数传递 user ==> "+user);return"{'module':'pojo for json param'}";}

在这里插入图片描述
运行成功

在这里插入图片描述

🛸集合格式

@RequestMapping("/listPojoParamForJson")@ResponseBodypublicStringlistPojoParamForJson(@RequestBodyList<User> list){System.out.println("list pojo(json)参数传递 list ==> "+list);return"{'module':'list pojo for json param'}";}

如果报错,重启一下就好了
在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

在这里插入图片描述

标签: spring boot json 后端

本文转载自: https://blog.csdn.net/m0_72853403/article/details/134905482
版权归原作者 在下小吉. 所有, 如有侵权,请联系我们删除。

“【SpringBoot篇】5种类型参数传递&&json数据传参的操作”的评论:

还没有评论