作用:
用于建立请求URL和处理请求方法之间的对应关系。
参数:
- value:定义处理方法的请求URL地址。
- method:定义处理方法的http method类型,如GET、POST等。
- params:定义请求的URL中必须包含的参数。或者不包含某些参数。
headers:定义请求中Request Headers必须包含的参数。或者不包含某些参数。
value用法:
标注类级别上
value相当于一个命名空间,即访问该Controller下的任意方法都需要带上这个命名空间。 ```java @Controller @RequestMapping(“/example”) public class ExampleController {
@RequestMapping public String execute(){ return “example_page”; }
@RequestMapping(“/todo”) public String doSomething(){ return “example_todo_page”; }
}
- /example:执行execute()方法
- /example/todo:执行doSomething()方法
2. 标注方法级别上
1. value表示访问该方法的URL地址。
<a name="UArXY"></a>
## method指定页面请求方式:
```java
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String register1(){
return "example_register_get_page";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register2(){
return "example_register_post_page";
}
注意:
- 可以为多个方法映射相同的URI,不同的http method类型,Spring MVC根据请求的method类型是可以区分开这些方法的。
- method若是缺省没指定,则可以处理任何方法的http method类型的请求。
params细化映射
为了细化映射。
只有当URL中包含与params值相匹配的参数的请求,才会调用该方法。 ```java @RequestMapping(value = “/find”, params = “target”) public String find1(){ return “example_find1_page”; }
@RequestMapping(value = “/find”, params = “!target”) public String find2(){ return “example_find2_page”; }
@RequestMapping(value = “/search”, params = “target=product”) public String search1(){ return “example_search1_page”; }
@RequestMapping(value = “/search”, params = “target!=product”) public String search2(){ return “example_search2_page”; }
1. find1():请求的URL必须要有target参数,才能调用此方法。
1. find2():请求的URL必须不能有target参数,才能调用此方法。
1. search1():请求的URL中必须要有target=product参数,才能调用此方法。
1. search2():请求的URL中必须不能有target=product参数,才能调用此方法。
<a name="slYQl"></a>
## headers细化映射
用于细化映射。<br />只有当请求的Request Headers中包含与headers值相匹配的参数,处理方法才会被调用。
```java
@RequestMapping(value = "/specify", headers = "accept=text/*")
public String specify(){
return "example_specify_page";
}
- 请求的Request Headers中Accept的值必须匹配text/*(如text/html),方法才会被调用。