@RequestMapping使用須知


----------------------siwuxie095

   

   

   

   

   

   

   

   

@RequestMapping 使用須知

   

   

使用 @RequestMapping 注解映射請求路徑

   

   

   

你可以使用 @RequestMapping 注解來將請求 URL 映射到整個

某個特定的方法上,即 @RequestMapping 既可以定義在類上,

也可以定義方法上

   

一般來說,類級別的注解負責將一個特定(或符合某種模式)的請求

路徑映射到一個控制器上,同時通過方法級別的注解來細化映射,即

根據特定的 HTTP 請求方法(GET、POST 方法等)、HTTP請求中是

否攜帶特定參數等條件,將請求映射到匹配的方法上

   

   

   

   

   

具體配置方法:

   

1)映射單個 URL

   

@RequestMapping("")@RequestMapping(value="")

   

2)映射多個 URL

 

@RequestMapping({"",""})@RequestMapping(value={"",""})

   

   

路徑開頭是否加斜杠 / 均可,建議加上,如:@RequestMapping("/hello")

   

   

   

   

   

@RequestMapping 一共有五種映射方式:

   

1標准 URL 映射

   

標准 URL 映射是最簡單的一種映射,例如:

   

@RequestMapping("/hello")

   

   

@RequestMapping({"/hello","/world"})

   

   

   

2Ant 風格的 URL 映射

   

Ant 通配符有三種:

   

通配符

說明

?

匹配任何單字符

*

匹配任意數量的字符(含 0 個)

**

匹配任意數量的目錄(含 0 個)

   

例如:

   

1)@RequestMapping("/?/hello/")

   

2)@RequestMapping("/*/hello")

   

3)@RequestMapping("/**/hello")

   

   

   

3占位符 URL 映射

   

URL 中可以通過一個或多個 {} 占位符映射

   

例如:@RequestMapping("/user/{userId}/show")

   

   

可以通過 @PathVariable("") 注解將占位符中的值綁定到方法參數上

   

   

/**

* 如果 URL 中的 userId 是純數字,那么使用 @PathVariable

* 做綁定時,可以根據自己的需求將方法參數類型設置為 Long

* IntegerString

*/

@RequestMapping("/user/{userId}/show")

public ModelAndView show(@PathVariable("userId") Long userId) {

// 創建 ModelAndView 對象,並設置視圖名稱

ModelAndView mv = new ModelAndView("show");

// 添加模型數據

mv.addObject("msg", "User ID" + userId);

return mv;

}

   

   

注意:@PathVariable("") 不能簡寫為 @PathVariable。因為在

正常編譯時,Java 類反射對象不包含方法的參數名稱。如果在編

譯時將 Debug 打開(javac -debug=no),方法的參數名稱才

會記錄到類中,此時才能簡寫,但不建議簡寫

   

   

編譯時,打開 Debug 的方法:

   

打開 Eclipse,Project->Properties->Java Compiler,勾選上

Add variable attributes to generated class files … 即可

   

   

   

   

   

   

4限制請求方法的 URL 映射

   

HTTP 請求中最常用的請求方法是 GET、POST,還有其他的

一些方法,如:DELET、PUT、HEAD 等

   

限制請求方法,例如:

   

@RequestMapping(value="/hello", method=RequestMethod.POST)

   

   

如需限制多個請求方法,以大括號包圍,逗號隔開即可,例如:

   

method={RequestMethod.GET,RequestMethod.POST}

   

   

   

5限制請求參數的 URL 映射

   

限制請求參數來映射 URL,例如:

   

@RequestMapping(value="/user/show", params="userId")

   

請求中必須帶有 userId 參數

   

   

參數的限制規則如下:

   

(1)params="userId" 請求參數中必須包含 userId

   

(2)params="!userId" 請求參數中不能包含 userId

   

(3)params="userId!=1" 請求參數中必須包含 userId,但不能為 1

   

(4)params={"userId","userName"} 必須包含 userId 和 userName 參數

   

   

可以通過 @RequestParam("") 注解將請求參數綁定到方法參數上

   

   

@RequestMapping(value="/user/show",params="userId")

public ModelAndView show(@RequestParam("userId") Long userId) {

// 創建 ModelAndView 對象,並設置視圖名稱

ModelAndView mv = new ModelAndView("show");

// 添加模型數據

mv.addObject("msg", "User ID" + userId);

return mv;

}

   

   

要注意 @PathVariable("") 和 @RequestParam("") 的不同:

   

@PathVariable("") 是將 URL 中占位符處的值綁定到方法參數上

   

@RequestParam("") 是將 URL 后的請求參數綁定到方法參數上

   

   

   

   

   

附:

   

推薦一個模擬發送請求的 Chrome 插件 Advanced REST Client,非常好用!

   

https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

   

   

   

   

   

   

   

【made by siwuxie095】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM