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;}@Overridepublic 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;}@Overridepublic 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
文章转载自:二价亚铁
原文链接:https://www.cnblogs.com/xw-01/p/17787884.html
体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构