目录
一、简单参数
原始方式(过于繁琐了解即可)
在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取。
@RequestMapping("/simpleParam")
public String simpleParam(HttpServletRequest request){
String name=request.getParameter("name");
String ageStr=request.getParameter("age");
int age=Integer.parseInt(ageStr);
System.out.println(name+","+age);
return "ok";
}
-
public String simpleParam(HttpServletRequest request)
:这是一个公共方法,返回类型为String。它接收一个HttpServletRequest
类型的参数,用于获取HTTP请求的信息。 -
String name=request.getParameter("name");
:从HTTP请求中获取名为"name"的参数值,并将其赋值给变量name
。 -
int age=Integer.parseInt(ageStr);
:将字符串类型的ageStr
转换为整数类型,并赋值给变量age
。
SpringBoot方式
简单参数:参数名与形参变量名相同,定义形参即可接收参数。
@RequestMapping("/simpleParam")
public String simpleParam(String name,Integer age){
System.out.println(name+","+age);
return "ok";
}
如果请求参数名 不一致,会导致接收失败,但是不会报错。 可以使用@RequestParam来完成映射。
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name="name") String username, Integer age){
System.out.println(username+","+age);
return "ok";
}
@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的必须将required属性设置为false。
二、实体参数
User实体类代码如下:
package com.example.demo.pojo;
public class User {
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
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;
}
}
简单实体对象:请求参数与形参对象属性名相同,定义POJO接收即可。
@RequestMapping("/simplePojo")
public String simplePojo(User user){
System.out.println(user);
return "ok";
}
复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。
三、数组集合参数
数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数。
@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";
}
四、日期参数
日期参数:使用@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标识。
@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";
}