一、简单参数
1、原始方式: 通过HttpServletRequest对象手动获取。
(1)请求url:http://ip:port/myurl?name=Tom&age=10
(2)接收:
@RequestMapping("/myurl")
publi String simpleParam(HttpServletRequest request){
String name = request.getParameter("name");
return name;
}
2、SpringBoot方式:参数名与形参变量名相同,定义形参即可接收参数。
(1)请求url:http://ip:port/myurl?name=Tom&age=10
(2)接收:
@RequestMapping("/myurl")
publi String simpleParam(String name, Integer age){
return name;
}
3、SpringBoot方式:参数名与形参变量名不相同,使用@RequestParam完成映射。
(1)请求url:http://ip:port/myurl?name=Tom&age=10
(2)接收:
@RequestMapping("/myurl")
publi String simpleParam(String name, @RequestParam(name="age")Integer age123){
return name;
}
注意:@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。 如果该参数是可选的,可以将required属性设置为false。
二、实体参数
1、简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可。
(1)请求url:http://ip:port/myurl?name=Tom&age=10
(2)接收:
@RequestMapping("/myurl")
public String simplePojo(User user){
System.out.println(user);
return "OK";
}
public class User {
private String name;
private Integer age;
}
2、复杂实体对象(对象的属性包含对象):
(1)请求url:http://ip:port/myurl?name=Tom&age=10&address.provience=heilongjiang&address.city=harbin
(2)接收:
@RequestMapping("/myurl")
public String simplePojo(User user){
System.out.println(user);
return "OK";
}
public class User {
private String name;
private Integer age;
private Address address;
}
public class Address {
private String province;
private String city;
三、Json参数:
JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody注解。
(1)请求url:http://ip:port/myurl
在Body中设置参数
(2)接收:
@RequestMapping("/myurl")
public String simplePojo(@RequestBody User user){
System.out.println(user);
return "OK";
}
public class User {
private String name;
private Integer age;
private Address address;
}
public class Address {
private String province;
private String city;
四、路径参数
通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数
1)请求url:http://ip:port/myurl/Tom/10
(2)接收:
@RequestMapping("/myurl/{name}/{id}")
public String simplePojo(@PathVariable String name, @PathVariable Integer id){
System.out.println(name);
return "OK";
}
五、数组集合参数
数组:请求参数名与数组名一致,直接封装
集合:请求参数名与集合名一致,@RequestParam绑定关系
六、日期参数
@DateTimeFormat