网站建设预期达到的效果,十大品牌网买购网,怎么创建免费网页,外贸网站平台哪个好#x1f38a;专栏【SpringBoot】 #x1f354;喜欢的诗句#xff1a;天行健#xff0c;君子以自强不息。 #x1f386;音乐分享【如愿】 #x1f384;欢迎并且感谢大家指出小吉的问题#x1f970; 文章目录 #x1f33a;普通参数#x1f33a;POJO参数#x1f33a;嵌套… 专栏【SpringBoot】 喜欢的诗句天行健君子以自强不息。 音乐分享【如愿】 欢迎并且感谢大家指出小吉的问题 文章目录 普通参数POJO参数嵌套pojo参数数组参数集合参数json数据传参json格式嵌套json格式集合格式 当涉及到参数传递时Spring Boot遵循HTTP协议并支持多种参数传递方式。这些参数传递方式可以根据请求的不同部分进行分类。
路径参数Path Parameters 路径参数是指在URL路径中的一部分用于标识资源或指定操作。路径参数通常以{}的形式出现在URL中如/users/{id}其中id就是一个路径参数。路径参数可以在URL中动态地改变从而实现对不同资源的操作。使用路径参数时Spring Boot使用PathVariable注解将路径参数绑定到方法参数上。查询参数Query Parameters 查询参数通常作为URL的一部分以?开始以keyvalue的形式出现多个参数之间使用连接如/users?id1nameJohn。查询参数主要用于筛选或过滤资源。在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)ResponseBodypublic 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;Overridepublic 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)ResponseBodypublic 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;Overridepublic 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)ResponseBodypublic String pojoContainPojoParam(User user){System.out.println(pojo嵌套pojo参数传递 user user);return {module:pojo contain pojo param};}继续测试
运行成功
数组参数
RequestMapping(/arrayParam)ResponseBodypublic String arrayParam(String[] likes){System.out.println(数组参数传递 likes Arrays.toString(likes));return {module:array param};}运行成功
集合参数
RequestMapping(/listParam)ResponseBodypublic String listParam(RequestParam ListString likes){System.out.println(集合参数传递 likes likes);return {module:list param};}运行成功
json数据传参
我们在SpringMvcConfig里面加入这一段代码EnableWebMvc,开启json数据自动转换 json格式 我们找到上面 集合参数 的代码,把RequestParam修改为RequestBody RequestMapping(/listParamForJson)ResponseBodypublic String listParamForJson(RequestBody ListString likes){System.out.println(list common(json)参数传递 list likes);return {module:list common for json param};}这里选择json,在下面写入数据
发现可以运行成功
嵌套json格式
RequestMapping(/pojoParamForJson)ResponseBodypublic String pojoParamForJson(RequestBody User user){System.out.println(pojo(json)参数传递 user user);return {module:pojo for json param};}运行成功 集合格式
RequestMapping(/listPojoParamForJson)ResponseBodypublic String listPojoParamForJson(RequestBody ListUser list){System.out.println(list pojo(json)参数传递 list list);return {module:list pojo for json param};}如果报错,重启一下就好了 运行成功