java中@requestMappling注解的使用
@RequestMapping注解的作用
從注解名稱上我們可以看到
@RequestMapping注解的作用就是將請求和處理請求的控制器方法關聯(lián)起來,建立映射關系。
SpringMVC 接收到指定的請求,就會來找到在映射關系中對應的控制器方法來處理這個請求。
@RequestMapping注解的位置
@RequestMapping標識一個類:設置映射請求的請求路徑的初始信息(基礎信息)
@RequestMapping標識一個方法:設置映射請求請求路徑的具體信息
controller控制層
處理首頁的控制層(標識在方法上)
@Controller
public class ProtalController {
@RequestMapping("/")
public String protal(){
return "index";
}
}
標識在類上和方法
@Controller
//標記到類上,設置當前請求映射的基礎信息,方法上是具體信息
@RequestMapping("/test")
public class TestRequestMapplingController {
// 控制器方法所配置的請求的請求路徑為/test/hello
@RequestMapping("/hello")
public String hello(){
return "success";
}
}
thymeleaf渲染頁面(index.html)
<body>
<h1>index.html</h1>
<a th:href="@{/hello}" rel="external nofollow" >測@RquestMappling標識注解的位置</a>
</body>
跳轉的頁面)(success,html)
<body> <h1>跳轉成功</h1> </body>
@RequestMapping注解的value屬性
value屬性通過請求的請求地址匹配請求映射。
value屬性是一個字符串類型的數(shù)組,
即當前瀏覽器所發(fā)送的請求路徑匹配value屬性中的任何一個值
則當前請求就會被注解所標識的方法進行處理。
value屬性必須設置,至少通過請求地址匹配請求映射。
@Controller
public class TestRequestMapplingController {
@RequestMapping({"/hello","/second"})
public String hello(){
return "success";
}
}
@RequestMapping注解的method屬性
作用:@RequestMapping注解的method屬性是一個RequestMethod類型的 數(shù)組,表示該請求映射能夠匹配多種請求方式的請求。
規(guī)定控制器的方法在請求路徑匹配的情況下,當前控制器方法處理請求的請求方式是什么?
當前請求路徑和請求方式都能匹配,控制器方法才能處理這個請求。
注意:
通過請求的請求方式匹配請求。
當前瀏覽器所發(fā)送的請求方式匹配method屬性中的任何一種請求方式,
則當前請求就會被注解所標識的方法進行處理。
若瀏覽器所發(fā)送的請求的請求路徑和@RequestMapping注解value屬性匹配,
但是請求方式不匹配此時,頁面報錯:405.....
get和post請求都可以匹配:method = {RequestMethod.GET,RequestMethod.POST}
@RequestMapping注解的method屬性通過請求的請求方式 (get或post) 匹配請求映射。
@RequestMapping(value = {"/hello","/second"},method = RequestMethod.GET )
public String hello(){
return "success";
}
@RequestMapping注解使用ant風格路徑
?:表示任意的單個字符
注意:? 是當前請求路徑中路徑和參數(shù)分割符,所以地址中 ?前面才是路徑,? 后面當成請求參數(shù)
* :表示任意的0個或多個字符
** :表示任意層數(shù)的任意目錄
注意:在使用**時,只能使用/**/xxx的方式
@RequestMapping("/a?a/test/ant")
public String testAnt(){
return "success";
}
thymeleaf渲染頁面
<a th:href="@{/aaa/test/ant}">測試測@RquestMappling注解支持ant風格路徑</a>
@RequestMapping注解使用路徑中的占位符
原始方式:/deleteUser?id=1
rest方式:/user/delete/1
把傳輸服務器參數(shù)(例如下面的admin/1這兩個參數(shù))也作為路徑一部分,傳輸?shù)椒掌髦小?br />會把所有的內容全部體現(xiàn)在路徑中,把id值傳過去就不用id和 ?
用原始方式是鍵值對,用rest方式該如何獲???,
就需要使用路徑中的占位符和@PathVariable注解。
thymeleaf渲染
<a th:href="@{/test/rest/admin/1}">測試測@RquestMappling的value屬性的占位符</a>
controller控制器
// {id}:占位符
@RequestMapping("/test/rest/{username}/{id}")
public String testRest(@PathVariable("id") Integer id,@PathVariable("username") String username){
System.out.println("id:"+id+"username:"+username);
return "success";
}
即匹配到當前請求映射,還要在控制器方法中獲取傳遞過去的請求參數(shù)
以前是name=value,現(xiàn)在只有value。
只需要在控制器方法里面獲取占位符id這個值,賦值到參數(shù)里面,
所以需要在@RequestMapping注解的value屬性中設置的路徑中,使用{xx}的方式表示路徑中的數(shù)據(jù),和通過@PathVariable注解將占位符所標識的值和控制器方法的形參進行綁定(也就是路徑中的變量 )。
到此這篇關于java中@requestMappling注解的使用的文章就介紹到這了,更多相關java @requestMappling注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springcloud Zuul動態(tài)路由的實現(xiàn)
這篇文章主要介紹了springcloud Zuul動態(tài)路由的實現(xiàn),詳細的介紹了什么是Zuu及其動態(tài)路由的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Spring如何替換掉默認common-logging.jar
這篇文章主要介紹了Spring如何替換掉默認common-logging.jar,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05
解析Java中的隊列和用LinkedList集合模擬隊列的方法
這篇文章主要介紹了解析Java中的隊列和用LinkedList集合模擬隊列的方法,相關算法的實現(xiàn)也是ACM中的常見題目,需要的朋友可以參考下2015-08-08
SpringBoot中使用@Async實現(xiàn)異步任務調用詳解
這篇文章主要介紹了SpringBoot中使用@Async實現(xiàn)異步任務調用詳解,一個可以無需等待被調用函數(shù)的返回值就讓操作繼續(xù)進行的方法(來自百度百科),即程序在順序執(zhí)行時,不等待異步調用的語句返回結果就執(zhí)行后面的程序,需要的朋友可以參考下2023-12-12

