1. 程式人生 > >RequestMapping註解

RequestMapping註解

json baidu c中 pre name str imp spring 處理

1、簡介

@RequestMapping註解是springmvc中常用的註解,它是用來處理請求映射地址的註解,可以用於類或方法上,用於類上時,表示該類中的方法後以該地址為父路徑。

2、屬性

  • value:指定請求的地址,地址可以分為三類

    1、指定具體的路徑

      @RequestMapping(value= {"/index"})
      public String index() {
          return "index";
      }

    2、指定為含有某變量的一類值(URI模板)當控制器處理請求時,URI模板中的變量會被對應部分的值所填充,具體請看示例

      //ownerId即為變量,若請求地址為“/index/admin”,即變量id值為admin
      @RequestMapping(value="/index/{id}", method=RequestMethod.GET)
      public String findOwner(@PathVariable String id) {
          return "index";
      }

    3、指定為含正則表達式的一類值(這個實際開發中應該很少用)

      @RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}")
          public void handle(@PathVariable String version, @PathVariable String extension) {
              // 代碼部分省略...
          }
      }    
  • method:指定提交請求的方式,有GET,POST等
    示例

      @RequestMapping(value= {"/index"},method=RequestMethod.POST)
      public String index() {
          return "index";
      }  
  • consmues:指定處理請求的提交內容類型(Content-Type),例如application/json, text/html,請求類型與指定類型不同時,將無法請求
    示例

      @RequestMapping(value= {"/index"},method=RequestMethod.POST,consumes="application/json")
          public String index() {
              return "index";
          }
  • produces:指定返回的內容類型,請求頭的Accept

    中要包含該類型,才可以返回
    示例

      @RequestMapping(value= {"/index"},method=RequestMethod.POST,produces="application/json")
          public String index() {
              return "index";
          }
  • params:表示request請求中必須包含某些參數,方法才會進行請求處理
    示例
    請求中必須包含username這個參數,方法才會對請求進行處理

      @RequestMapping(value= {"/index"},method=RequestMethod.GET,params="username")
      public String index() {
              return "index";
      }
  • headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。
    示例
    請求頭中的 referer需與 “http://www.baidu.com/”一樣

      @RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.baidu.com/")
        public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {    
          // implementation omitted
        }
      }

RequestMapping註解