@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充
@RequestParam
http://localhost:8080/springmvc/?param1=10¶m2=20
根据上面的这个URL,你可以用这样的方式来进行获取
public String getDetails(@RequestParam String param1, @RequestParamString param2){
...
}
@PathVariable
@RequestMapping("/user/{id}")
public String getDetails(@PathVariable int id){
...
}
@ModelAttribute
@ModelAttribute可以用在方法上注释,也可以用在参数上注释。最主要的作用是将数据添加到Model对象中,用于视图页面展示时使用。
- @ModelAttribute注解在方法上。@ModelAttribute注解的方法会在Controller每个方法执行前被调用。
@ModelAttribute
public void test(){
System.out.println("111");
}
@RequestMapping("/test")
public void test1(){
System.out.println("222");
}
当请求"/test"的时候。首先执行test方法然后在执行test1方法。如果有多个@ModelAttribute会顺序执行。
2. @ModelAttribute注解在参数上。用于绑定参数
@RequestMapping(value="/test")
public String postUser(@ModelAttribute User user) {
// 处理"/users/"的POST请求,⽤来创建User
// 除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从⻚⾯中传递参数
users.put(user.getId(), user);
return "success";
}