SpringMVC系列(二): 註解@RequestMapping、@PathVariable

來源:互聯網
上載者:User

標籤:spring3   要求標頭   www   header   value   res   發展   進一步   方式   

一、@RequestMapping

[email protected]除了能修飾方法,還能修飾類
(1)修飾類:提供初步的請求映射資訊,相對於web請求的根目錄
(2)修飾方法:提供進一步的細分映射資訊
相對於類定義處的URL,若類定義處未標註@RequestMapping,則方法處標記的URL相對於web應用的根目錄

[email protected]的請求方式
@RequestMapping 的 value、method、params 及 heads 分別表示請求 URL、要求方法、請求參數及要求標頭的映射條
件,他們之間是與的關係,聯合使用多個條件可讓請求映射更加精確化。

3.Ant 風格資源地址支援 3 種匹配符:
– ?:匹配檔案名稱中的一個字元
– *:匹配檔案名稱中的任一字元
– **:** 匹配多層路徑
? @RequestMapping 還支援 Ant 風格的 URL:
– /user/*/createUser: 匹配
/user/aaa/createUser、/user/bbb/createUser 等 URL
– /user/**/createUser: 匹配
/user/createUser、/user/aaa/bbb/createUser 等 URL
– /user/createUser??: 匹配
/user/createUseraa、/user/createUserbb 等 URL

 1 package com.study.springmvc.handlers; 2  3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RequestMethod; 6  7 @RequestMapping("/requestMappingTest") 8 @Controller 9 public class RequestMappingTest {10 11     public static final String SUCCESS="success";12     /**13      * [email protected]除了能修飾方法,還能修飾類14      *(1)修飾類:提供初步的請求映射資訊,相對於web請求的根目錄15      *(2)修飾方法:提供進一步的細分映射資訊16      * 相對於類定義處的URL,若類定義處未標註@RequestMapping,則方法處標記的URL相對於web應用的根目錄17      * @return 成功18      */19     @RequestMapping("/testRequestMapping")20     public String testRequestMapping() {21         System.out.println("testRequestMapping");22         return SUCCESS;23     }24     25     /**26      * [email protected]的請求方式27        @RequestMapping 的 value、method、params 及 heads 分別表示請求 URL、要求方法、請求參數及要求標頭的映射條28          件,他們之間是與的關係,聯合使用多個條件可讓請求映射更加精確化。29      * @return30      */31     @RequestMapping(value="/testMethod",method=RequestMethod.POST)32     public String testMethod() {33         System.out.println("testMethod的post方式");34         return SUCCESS;35     } 36     37     /**38      * 3.瞭解: 可以使用 params 和 headers 來更加精確的映射請求. params 和 headers 支援簡單的運算式.39      * 40      * @return41      */42     @RequestMapping(value = "testParamsAndHeaders", params = { "username",43             "age!=10" }, headers = { "Accept-Language=zh-CN,zh;q=0.8" })44     public String testParamsAndHeaders() {45         System.out.println("testParamsAndHeaders");46         return SUCCESS;47     }48     /**49      * 4.Ant 風格資源地址支援 3 種匹配符:50      *    – ?:匹配檔案名稱中的一個字元51      *    – *:匹配檔案名稱中的任一字元52      *    – **:** 匹配多層路徑53      * @return54      */55     @RequestMapping("/testAntPath/*/abc")56     public String testAntPath() {57         System.out.println("testAntPath");58         return SUCCESS;59     }60 }
 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3      4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <body> 7 <!-- href="helloworld"和HelloWorld.java的@RequestMapping("/helloworld")對應 --> 8 <a href="helloworld">Hello World</a> 9 10 <br/>11 <a href="requestMappingTest/testRequestMapping">@RequestMapping修飾類和方法</a>12 13 <br/>14 <form action="requestMappingTest/testMethod" method="POST">15 <input type="submit" value="測試@RequestMappin的post請求方式">16 </form>17  18  <br/>19 <a href="requestMappingTest/testParamsAndHeaders?username=lgs&age=11">testParamsAndHeaders</a>20  21  <br/>22 <a href="requestMappingTest/testAntPath/ggggggg/abc">testAntPath</a>23     24     25 </body>26 </html>
二、@PathVariable

@PathVariable 映射 URL 綁定的預留位置

? 帶預留位置的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過程中具有裡程碑的意義

? 通過 @PathVariable 可以將 URL 中預留位置參數綁定到控制器處理方法的入參中:URL 中的 {xxx} 預留位置可以通過@PathVariable("xxx") 綁定到操作方法的入參中。

1 <a href="pathVariableTest/testPathVariable/10">testPathVariable</a>
 1 package com.study.springmvc.handlers; 2  3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.PathVariable; 5 import org.springframework.web.bind.annotation.RequestMapping; 6  7 @RequestMapping("/pathVariableTest") 8 @Controller 9 public class PathVariableTest {10 11     public static final String SUCCESS="success";12     13     /**14      * @PathVariable 可以來映射 URL 中的預留位置到目標方法的參數中.15      * @param id16      * @return17      */18     @RequestMapping("/testPathVariable/{id}")19     public String testPathVariable(@PathVariable("id") Integer id) {20         System.out.println("testPathVariable: " + id);21         return SUCCESS;22     }23 }

 

SpringMVC系列(二): 註解@RequestMapping、@PathVariable

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.