一、简单参数
1、原始方式
在原始的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";
}
2、springboot方式
//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";
}
二、实体参数
1、简单实体对象
简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可
//2、实体参数
@RequestMapping("/simplePojo")
public String simplePojo(User user){
System.out.println(user);
return "OK";
}
2、复杂实体对象
复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。
public class Address {
private String province;
private String city;
}
public class User {
private String name;
private String age;
private Address address;
}
@RequestMapping("/complexPojo")
public String complexPojo(User user){
System.out.println(user);
return "OK";
}
GET请求:
结果:
三、数组集合参数
1、数组参数
数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
//数组集合参数
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}
2、集合参数
集合参数:请求参数名与形参集合名称相同且请求参数为多个,@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 pathParm(@PathVariable Integer id) {
System.out.println(id);
return "OK";
}
@RequestMapping("/path/{id}/{name}")
public String pathParm2(@PathVariable Integer id, @PathVariable String name){
System.out.println(id);
System.out.println(name);
return "OK";
输入和结果为: