目录
- Controller层获取请求参数的方式介绍
- 1、Controller方法的参数名称和请求的参数名称相对应
- 适用场景
- 实例
- 2、使用HttpServletRequest 对象获取参数
- 适用场景
- 实例
- 3、通过建立一个实体对象来获取参数
- 适用场景
- 实例
- 4、通过 PathVariable 从请求连接中获取参数
- 适用场景
- 实例
- 5、通过 ModelAttribute 获取传进的参数
- 适用场景
- 实例
- 6、用注解@RequestParam绑定请求参数到方法入参
- 适用场景
- 实例
- 7、用注解@RequestBody绑定请求参数到方法入参
- 适用场景
- 实例
- 项目git地址
Controller层获取请求参数的方式介绍
1、Controller方法的参数名称和请求的参数名称相对应
适用场景
只适用get请求
实例
请求例子:http://127.0.0.1:8888/study/param/add_string?name=小米&age=10
@RequestMapping(path = "/add_string", method = RequestMethod.GET)
public User add_String(String name,Integer age)
{
User user = new User();
user.setName(name);
user.setAge(age);
return user;
}
2、使用HttpServletRequest 对象获取参数
适用场景
适用get请求和post请求
实例
请求例子:http://127.0.0.1:8888/study/param/add_servlet?name=小红&age=11 在post的body中加入phone
@RequestMapping(path = "/add_servlet")
public User add_servlet(HttpServletRequest request)
{
User user = new User();
user.setName(request.getParameter("name"));
user.setAge(Integer.parseInt(request.getParameter("age")));
user.setPhone(request.getParameter("phone"));
return user;
}
3、通过建立一个实体对象来获取参数
适用场景
适用get请求和post请求
实例
请求例子:http://127.0.0.1:8888/study/param/add_entity?name=小红&age=11 在post的body中加入phone
@RequestMapping(path = "/add_entity")
public User add_entity(User user)
{
System.out.println(user.toString());
return user;
}
4、通过 PathVariable 从请求连接中获取参数
适用场景
适用get请求
实例
请求例子:http://127.0.0.1:8888/study/param/add_path_variable/小红/11
@RequestMapping(path = "/add_path_variable/{name}/{age}",method = RequestMethod.GET)
public User add_path_variable(@PathVariable String name,@PathVariable String age)
{
User user = new User();
user.setName(name);
user.setAge(Integer.parseInt(age));
return user;
}
5、通过 ModelAttribute 获取传进的参数
适用场景
适用post请求
实例
请求例子:
@RequestMapping(path = "/add_model_attribute",method = RequestMethod.POST)
public User add_model_attribute(@ModelAttribute("user") User user)
{
System.out.println(user.toString());
return user;
}
6、用注解@RequestParam绑定请求参数到方法入参
@RequestParam注解:将请求参数区域的数据映射到控制层方法的参数上
name:参数 名称
required:是否必须
defaultValue:默认值
适用场景
适用get请求和post请求参数是key-value形式时的数据
实例
请求例子:http://127.0.0.1:8888/study/param/add_request_param?as_name=小红&as_age=11
@RequestMapping(path = "/add_request_param")
public User add_request_param(@RequestParam(name="as_name",required = true,defaultValue = "默认名称") String name,@RequestParam(name="as_age",required = true) String age)
{
User user = new User();
user.setName(name);
user.setAge(Integer.parseInt(age));
return user;
}
7、用注解@RequestBody绑定请求参数到方法入参
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)
适用场景
适用post请求
实例
请求例子:http://127.0.0.1:8888/study/param/add_request_body
@RequestMapping(path = "/add_request_body",method = RequestMethod.POST)
public User add_request_body(@RequestBody User user)
{
System.out.println(user.toString());
return user;
}