一、value属性
—— 设置映射路径
可简写
简写前:
@RequestMapping(value = "user")
简写后:
@RequestMapping("user")
可以声明在类以及方法上
仅声明在方法上:浏览器访问路径 http://localhost:8080/项目名称/方法声明
@Controller
public class UserController {
@RequestMapping(value = "func1")
public ModelAndView func1() {
return null;
}
}
声明在类以及方法上:浏览器访问路径 http://localhost:8080/项目名称/类声明/方法声明
@Controller
@RequestMapping("user")
public class UserController {
@RequestMapping(value = "func1")
public ModelAndView func1() {
return null;
}
}
二、method属性
—— 设置请求方式,仅当请求方式为指定方式时,控制器才执行方法
设置method属性
@RequestMapping(value = "func1", method = {RequestMethod.POST, RequestMethod.GET})
public ModelAndView func1() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("index");
return modelAndView;
}
只有当请求为POST或者GET 时才执行方法
请求方法
RequestMethod.GET(缺省默认)
RequestMethod.POST
RequestMethod.PUT
RequestMethod.DELETE
三、params属性
—— 设置请求参数,仅当请求携带指定参数时,控制器才执行方法
设置params属性
@RequestMapping(value = "func2", params = {"name=tom", "password=123"})
public ModelAndView func2(String name, String password) {
System.out.println(name);
System.out.println(password);
return null;
}
只有当访问地址为 http://localhost:8080/func2?name=tom&password=123 时才执行方法
四、headers属性
—— 设置请求中请求头的信息,仅当请求头携带指定信息时,控制器才执行方法
设置headers属性
@RequestMapping(value = "func3", headers = "host=localhost:8080")
public ModelAndView func3() {
return null;
}
只有当请求头带有 host=localhost:8080的信息 时才执行方法(host=localhost:8080意为只有本地电脑可以访问,通过IP无法访问)
五、占位符
—— 设置请求url中的占位符,通过@PathVariable绑定参数
设置占位符
@RequestMapping("func4/{name}/{password}")
public ModelAndView func4(@PathVariable("name") String name,
@PathVariable("password") String password) {
System.out.println(name);
System.out.println(password);
return null;
}
当访问地址为 /func4/tom/1234 时,方法注解将url进行解析,将@PathVariable("XXX")注解中的名字与url中{"XXX"}的名字一一对应,把tom、1234的信息填入name、password变量中