日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC @RequestMapping注解详解

發布時間:2025/3/20 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC @RequestMapping注解详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@RequestMapping 參數說明

  value:定義處理方法的請求的 URL 地址。(重點)

  method:定義處理方法的 http method 類型,如 GET、POST 等。(重點)

  params:定義請求的 URL 中必須包含的參數。或者不包含某些參數。(了解)

  headers:定義請求中 Request Headers 必須包含的參數。或者不包含某些參數。(了解)

?

?

@RequestMapping 的用法

  @RequestMapping 有兩種標注方式,一種是標注在類級別上,一種是標注在方法級別上。標注在方法上時,value 表示訪問該方法的 URL 地址。標注在類上時,value 相當于一個命名空間,即訪問該 Controller 下的任意方法都需要帶上這個命名空間。例如:

Java代碼

1 @Controller 2 @RequestMapping("/example") 3 public class ExampleController { 4 5 @RequestMapping 6 public String execute(){ 7 return "example_page"; 8 } 9 10 @RequestMapping("/todo") 11 public String doSomething(){ 12 return "example_todo_page"; 13 } 14 15 }

  1:/example.action:執行的是 execute() 方法。execute() 方法的 @RequestMapping 注解缺省 value 值,在這種情況下,當訪問命名空間時默認執行的是這個方法。方法級別上的 @RequestMapping 標注是必須的,否則方法無法被正確訪問。

  2:/example/todo.action執行的是 doSomething() 方法。類級別上的 @RequestMapping 標注不是必須的,在不寫的情況下,方法上定義的 URL 都是絕對地址,否則,方法上定義的 URL 都是相對于它所在的?Controller 的。

?

@RequestMapping(method):指定頁面請求方式

1 @RequestMapping(value = "/register", method = RequestMethod.GET) 2 public String register(){ 3 return "example_register_page"; 4 }

  method 的值一旦指定,那么,處理方法就只對指定的 http method 類型的請求進行處理。 這里方法/register只能使用get請求,使用post請求無法訪問

1 @RequestMapping(value = "/register", method = RequestMethod.GET) 2 public String register1(){ 3 return "example_register_get_page"; 4 } 5 6 @RequestMapping(value = "/register", method = RequestMethod.POST) 7 public String register2(){ 8 return "example_register_post_page"; 9 }

  可以為多個方法映射相同的 URI,不同的 http method 類型,Spring MVC 根據請求的 method 類型是可以區分開這些方法的。當 /example/register.action 是以 GET 的方式提交的時候,Spring MVC 調用 register1() 來處理請求;若是以 POST 的方式提交,則調 register2() 來處理提交的請求。

  method 若是缺省沒指定,并不是說它默認只處理 GET 方式的請求,而是它可以處理任何方式的 http method 類型的請求。指定 method 是為了細化映射 ( 縮小處理方法的映射范圍 ),在 method 沒有指定的情況下,它的映射范圍是最大的。

?

@RequestMapping(params)

  與 method 相類似,作用是為了細化映射。只有當 URL 中包含與 params 值相匹配的參數的請求,處理方法才會被調用。

1 @RequestMapping(value = "/find", params = "target") 2 public String find1(){ 3 return "example_find1_page"; 4 } 5 6 @RequestMapping(value = "/find", params = "!target") 7 public String find2(){ 8 return "example_find2_page"; 9 } 10 11 @RequestMapping(value = "/search", params = "target=product") 12 public String search1(){ 13 return "example_search1_page"; 14 } 15 16 @RequestMapping(value = "/search", params = "target!=product") 17 public String search2(){ 18 return "example_search2_page"; 19 }

  find1():請求的 URL 中必須要有 target 參數,才能夠到達此方法。如 /example/find.action?target 或 /example/find.action?target=x 等

  find2():請求的 URL 中必須不能有 target 參數,才能夠到達此方法。如 /example/find.action 或 /example/find.action?q=x 等

  search1():請求的 URL 中必須要有 target=product 參數,才能夠到達此方法。如 /example/search.action?target=product 等

  search2():請求的 URL 中必須不能有 target=product 參數,才能夠到達此方法。如 /example/search.action?target=article 等

?

?

@RequestMapping(headers)

  headers 的作用也是用于細化映射。只有當請求的 Request Headers 中包含與 heanders 值相匹配的參數,處理方法才會被調用。?

?

1 @RequestMapping(value = "/specify", headers = "accept=text/*") 2 public String specify(){ 3 return "example_specify_page"; 4 }

?

  請求的 Request Headers 中 Accept 的值必須匹配 text/* ( 如 text/html ),方法才會被調用。

?

@RequestMapping支持Ant風格的通配符

通配符說明示例
?匹配一個任意字符/a/?b 可以匹配/a/ab;/a/cb。但不能匹配/a/acb之類
*匹配任意長度的字符/a/ *b可以匹配/a/cb;/a/acb。但不能匹配/a/cb/vb
**匹配多層路徑可以匹配/a/ab;/a/acb;/a/ab/abc/…/…

總結

以上是生活随笔為你收集整理的Spring MVC @RequestMapping注解详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。