作用:
用于建立请求URL和处理请求方法之间的对应关系。
参数:

  1. value:定义处理方法的请求URL地址。
  2. method:定义处理方法的http method类型,如GET、POST等。
  3. params:定义请求的URL中必须包含的参数。或者不包含某些参数。
  4. headers:定义请求中Request Headers必须包含的参数。或者不包含某些参数。

    value用法:

  5. 标注类级别上

    1. 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”; }

}

  1. - /example:执行execute()方法
  2. - /example/todo:执行doSomething()方法
  3. 2. 标注方法级别上
  4. 1. value表示访问该方法的URL地址。
  5. <a name="UArXY"></a>
  6. ## method指定页面请求方式:
  7. ```java
  8. @RequestMapping(value = "/register", method = RequestMethod.GET)
  9. public String register1(){
  10. return "example_register_get_page";
  11. }
  12. @RequestMapping(value = "/register", method = RequestMethod.POST)
  13. public String register2(){
  14. return "example_register_post_page";
  15. }

注意:

  1. 可以为多个方法映射相同的URI,不同的http method类型,Spring MVC根据请求的method类型是可以区分开这些方法的。
  2. 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. 1. find1():请求的URL必须要有target参数,才能调用此方法。
  2. 1. find2():请求的URL必须不能有target参数,才能调用此方法。
  3. 1. search1():请求的URL中必须要有target=product参数,才能调用此方法。
  4. 1. search2():请求的URL中必须不能有target=product参数,才能调用此方法。
  5. <a name="slYQl"></a>
  6. ## headers细化映射
  7. 用于细化映射。<br />只有当请求的Request Headers中包含与headers值相匹配的参数,处理方法才会被调用。
  8. ```java
  9. @RequestMapping(value = "/specify", headers = "accept=text/*")
  10. public String specify(){
  11. return "example_specify_page";
  12. }
  • 请求的Request Headers中Accept的值必须匹配text/*(如text/html),方法才会被调用。