1、简单参数
1、参数名与形参变量名相同,定义形参即可接收参数,且会自动进行类型转换。
@RequestMapping("/simple")
public String simpleParam(String name,int age){
String username = name;
int userAge = age;
System.out.println(username+"========"+userAge);
return "OK";
}
postman请求:
2、参数名与形参变量名不同,用requestParam
@RequestMapping("/simple2")
public String simpleParam2(@RequestParam(value = "name",required = false) String s_name, @RequestParam(name = "age") int s_age){
String username = s_name;
int userAge = s_age;
System.out.println(username+"========"+userAge);
return "OK";
}
postman请求:
注意:@RequestParam的required默认为true,也就是说用@RequestParam指定的参数是必传项,否则报错。
2、实体参数
1、简单实体对象
请求参数名与形参对象属性名相同,定义POJO接收即可
public class User {
String name;
int age;
//省略get和set方法,toString()
}
@RequestMapping("/simplePojo")
public String simplePojo(User user){
System.out.println(user);
return "OK";
}
postman请求:
2、复杂实体对象
public class User {
String name;
int age;
Address address;
}
public class Address {
String province;
String city;
}
@RequestMapping("/complexPojo")
public String complexPojo(User user){
System.out.println(user);
return "OK";
}
postman请求:
3、数组参数
请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}
postman请求:
4、集合参数
请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
System.out.println(hobby);
return "OK";
}
postman请求:
5、日期参数
使用@DateTimeFormat注解完成日期参数格式转换
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
postman请求:
6、JSON参数
JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
System.out.println(user);
return "OK";
}
postman请求:
7、路径参数
通过请求URL直接传递参数,使用 {......}来标识该路径参数,需要使用@PathVariable获取路径参数
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable(value = "id") Integer id){
System.out.println(id);
return "OK";
}
postman请求:
多个路径参数:
@RequestMapping("/path/{id}/{name}")
public String pathParam(@PathVariable(value = "id") Integer id,@PathVariable String name){
System.out.println(id);
System.out.println(name);
return "OK";
}
postman请求: