SpringMVC之使用 @RequestMapping 映射請求
阿新 • • 發佈:2018-05-26
gmv 新增 pos ack patch 客戶端 img face 處理
@RequestMapping註解
SpringMVC使用該註解讓控制器知道可以處理哪些請求路徑的,除了可以修飾方法,還可以修飾在類上。
– 類定義處:提供初步的請求映射信息。相對於 WEB 應用的根目錄
– 方法處:提供進一步的細分映射信息。相對於類定義處的 URL。若
類定義處未標註 @RequestMapping,則方法處標記的 URL 相對於
WEB 應用的根目錄 。
DispatcherServlet作為SpringMVC的前置控制器,攔截客戶端請求後,通過該註解的映射信息確定請求的處理方法。
@RequestMapping接口定義:
@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping {
下面是一個測試類
package com.led.test; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * @author Alan * @date 2018/5/25 22:03*/ @Controller @RequestMapping("/test") public class SpringMVCTest { private static final String SUCCESS = "success"; @RequestMapping("/testRequestMapping") public String testRequestMapping(){ System.out.println("testRequestMapping"); return SUCCESS; } }
index.jsp加上發送對應請求的鏈接:
<a href="test/testRequestMapping">Test RequestMapping</a>
運行項目,點擊該鏈接,可以看到請求路徑是類上的請求路徑和方法的請求路徑拼接起來的,同時控制臺也有對應輸出。
@RequestMapping裏面還可以使用method屬性定義請求方式:
/** * 使用method定義請求方式 * @return */ @RequestMapping(value = "/testMethod",method = RequestMethod.POST) public String testMethod(){ System.out.println("test method"); return SUCCESS; }
index.jsp新增發送post方式的按鈕,點擊後成功跳轉到success.jsp
<form action="test/testMethod" method="post"> <input type="submit" value="submit"> </form>
如果使用超鏈接方式(其實發送的是GET請求),將報如下錯誤:
@RequestMapping映射請求參數(params)、請求方法或請求頭 (headers)示例;
@RequestMapping(value = "/testParamsAndHeaders", headers = {"Accept-Language=zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}, params = {"username","age!=10"}) public String testParamsAndHeaders(){ System.out.println("testParamsAndHeaders"); return SUCCESS; }
index.jsp加上測試鏈接:
<a href="test/testParamsAndHeaders?username=zhangsan&age=11">Test ParamsAndHeaders</a>
由於params和headers都符合設置的值,所以成功返回success.jsp.
SpringMVC之使用 @RequestMapping 映射請求