SpringMVC接受请求参数
2019-01-18 本文已影响4人
Tim在路上
数据传送到控制器的方法:
- 查询参数
- 表单参数
- 路径变量
获取查询路径中参数@PathVariable
@RequestMapping(value="/addUser4/{username}/{password}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username,@PathVariable String password) {
System.out.println("username is:"+username);
System.out.println("password is:"+password);
return "demo/index";
}
在RequestMapping中配置参数名,同时与方法的参数名相同,需要在前面加上@PathVariable注解
http://localhost:8080/WxProgram/zhang/123
用注解@RequestParam绑定请求参数到方法入参
@RequestMapping(value="/addUser6",method=RequestMethod.GET)
public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
System.out.println("username is:"+username);
System.out.println("password is:"+password);
return "demo/index";
}
当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value="username", required=false)
defaultValue:默认值,如果设置了该值,required 将自动设为 false,
无论你是否配置了required,配置了什么值,都是 false(可选配置)
http://localhost:8080/WxProgram?username=zhang&password=123
当然也可以不使用@RequiredParam注解,直接去掉,只有参数名和controller方法中参数名相同即可。
通过HttpServletRequest接收
post方式和get方式都可以
@RequestMapping("/addUser2")
public String addUser2(HttpServletRequest request) {
String username=request.getParameter("username");
String password=request.getParameter("password");
System.out.println("username is:"+username);
System.out.println("password is:"+password);
return "demo/index";
}
通过一个bean来接收
@RequestMapping("/addUser3")
public String addUser3(UserModel user) {
System.out.println("username is:"+user.getUsername());
System.out.println("password is:"+user.getPassword());
return "demo/index";
}
post方式和get方式都可以
User和要传的参数一致
也可以在前面加上@ModelAttribute注解
使用@ModelAttribute注解获取POST请求的FORM表单数据
@RequestMapping(value="/addUser5",method=RequestMethod.POST)
public String addUser5(@ModelAttribute("user") UserModel user) {
System.out.println("username is:"+user.getUsername());
System.out.println("password is:"+user.getPassword());
return "demo/index";
}