【SpringBoot篇】5种类型参数传递&&json数据传参的操作 您所在的位置:网站首页 json数据的各种转换方式 【SpringBoot篇】5种类型参数传递&&json数据传参的操作

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

2024-06-09 05:46| 来源: 网络整理| 查看: 265

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

文章目录 🌺普通参数🌺POJO参数🌺嵌套pojo参数🌺数组参数🌺集合参数🎄json数据传参🛸json格式🛸嵌套json格式🛸集合格式

在这里插入图片描述 当涉及到参数传递时,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") @ResponseBody public String commonParamDifferentName(@RequestParam("name") String userName,int age){ System.out.println("普通参数传递 userName ==> "+userName); System.out.println("普通参数传递 age ==> "+age); return "{'module':'common param different name'}"; }

在这里插入图片描述

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

🌺POJO参数

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

package com.example.domain; public class User { private String name; private int age; private Address address; @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

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

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

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

🌺嵌套pojo参数

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

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

package com.example.domain; public class Address { private String province; private String city; @Override public String toString() { return "Address{" + "province='" + province + '\'' + ", city='" + city + '\'' + '}'; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } }

在UserController里面写入这一段代码

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

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

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

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

在这里插入图片描述

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

🌺集合参数 @RequestMapping("/listParam") @ResponseBody public String listParam(@RequestParam List likes){ System.out.println("集合参数传递 likes ==> "+ likes); return "{'module':'list param'}"; }

在这里插入图片描述

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

🎄json数据传参

我们在SpringMvcConfig里面加入这一段代码@EnableWebMvc,开启json数据自动转换

在这里插入图片描述

🛸json格式

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

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

在这里插入图片描述

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

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

🛸嵌套json格式 @RequestMapping("/pojoParamForJson") @ResponseBody public String pojoParamForJson(@RequestBody User user){ System.out.println("pojo(json)参数传递 user ==> "+user); return "{'module':'pojo for json param'}"; }

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

在这里插入图片描述

🛸集合格式 @RequestMapping("/listPojoParamForJson") @ResponseBody public String listPojoParamForJson(@RequestBody List list){ System.out.println("list pojo(json)参数传递 list ==> "+list); return "{'module':'list pojo for json param'}"; }

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

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

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有