springboot3请求参数种类及接口测试案例小结
SpringBoot3数据请求:
原始数据请求:
//原始方式 @RequestMapping("/simpleParam") public String simpleParam(HttpServletRequest request){ //获取请求参数 String name = request.getParameter("name"); String age = request.getParameter("age"); int age1 = Integer.parseInt(age); System.out.println(name+":"+ age1); return "ok"; }
springboot数据请求方式:
//springboot方式 @RequestMapping("/simpleParam") public String simpleParam(String name,Integer age){ //获取请求参数 System.out.println(name+":"+ age); return "ok"; }
**
一、简单实体参数:
**
@RequestParam注解的使用:方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射。
@RequestMapping("/simpleParam") public String simpleParam(@RequestParam(name="name",required = false) String username,Integer age){ //获取请求参数 System.out.println(username+":"+ age); return "ok"; }
@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错,如果该参数是可选中,可以将required属性设置为false。
如下图所示:
二、实体对象参数
规则:请求参数名与形参对象属性名相同,即可直接通过pojo接收。
User实体类
public class User { private String name; private Integer age; private Address address; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; }
Address实体类
public class Address { private String province; private String 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; } @Override public String toString() { return "Address{" + "province='" + province + '\'' + ", city='" + city + '\'' + '}'; }
三、数组集合参数:
数组参数: 请求参数名与形参数组名称相同且请求参数为多个,定义数组类形参即可接受参数。
//数组集合参数 @RequestMapping("/arrayParam") public String arrayParam(String[] hobby){ System.out.println(Arrays.toString(hobby)); return "ok"; }
集合参数: 请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系
@RequestMapping("/listParam") public String listParam(@RequestParam List<String> hobby){ System.out.println(hobby); return "ok"; }
小结:
数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装
集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系
四、日期参数
日期参数: 使用@DateTimeFormat注解完成日期参数格式转换
//日期时间参数 @RequestMapping("/dateParam") public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){ System.out.println(updateTime); return "ok"; }
五、Json参数
Json参数: JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识
//json参数 @RequestMapping("/jsonParam") public String jsonParam(@RequestBody User user){ System.out.println(user); return "ok"; }
六、路径参数
路径参数: 通过请求url直接传递参数,使用{...}来标识该路径参数,需要使用@PathVariable获取路径参数
//路径参数 @RequestMapping("/path/{id}") public String pathParam(@PathVariable Integer id){ System.out.println(id); return "ok"; } @RequestMapping("/path/{id}/{name}") public String pathParam2(@PathVariable Integer id,@PathVariable String name){ System.out.println(id+":"+name); return "ok"; }
总结
简单参数:
- 定义方法形参,请求参数名与形参变量名一致
- 如果不一致,通过@RequestParam手动映射
实体参数:
- 请求参数名,与实体对象的属性名一致,会自动接受封装
数组集合参数:
- 数组:请求参数名与数组名一致,直接封装
- 集合:请求参数名与集合名一致,@RequestParam绑定关系
日期参数:
- @DateTimeFormat
JSON参数:
- @RequestBody
路径参数:
- PathVariable
到此这篇关于springboot3请求参数种类及接口测试案例小结的文章就介绍到这了,更多相关springboot请求参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- SpringBoot如何获取Get请求参数详解
- springBoot 过滤器去除请求参数前后空格实例详解
- SpringBoot通过JSON传递请求参数的实例详解
- springboot如何设置请求参数长度和文件大小限制
- SpringBoot常见get/post请求参数处理、参数注解校验及参数自定义注解校验详解
- SpringBoot之自定义Filter获取请求参数与响应结果案例详解
- springboot vue接口测试HutoolUtil TreeUtil处理树形结构
- springboot vue接口测试前后端实现模块树列表功能
- springboot vue接口测试前后端树节点编辑删除功能
- springboot vue接口测试前端动态增删表单功能实现
相关文章
对比Java中的Comparable排序接口和Comparator比较器接口
Comparable和Comparator接口都可用作普通意义上对象间的比大小,但两个接口在实例化方面的用法不尽相同,接下来我们就来详细对比Java中的Comparable排序接口和Comparator比较器接口2016-05-05Java 时间格式转换之impleDateFormat与Data API解析与使用
想必大家对 SimpleDateFormat 并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,他是以区域敏感的方式格式化和解析日期的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化2021-11-11
最新评论