您好,登錄后才能下訂單哦!
本篇內容介紹了“SpringMVC @RequestMapping注解有什么作用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
從注解名稱上我們可以看到,@RequestMapping注解的作用就是將請求和處理請求的控制器方法關聯起來,建立映射關系。
SpringMVC 接收到指定的請求,就會來找到在映射關系中對應的控制器方法來處理這個請求。
@RequestMapping標識一個類:設置映射請求的請求路徑的初始信息
@RequestMapping標識一個方法:設置映射請求請求路徑的具體信息
@Controller @RequestMapping("/test") public class RequestMappingController { //此時請求映射所映射的請求的請求路徑為:/test/testRequestMapping @RequestMapping("/testRequestMapping") public String testRequestMapping(){ return "success"; } }
@RequestMapping注解的value屬性通過請求的請求地址匹配請求映射
@RequestMapping注解的value屬性是一個字符串類型的數組,表示該請求映射能夠匹配多個請求地址所對應的請求
@RequestMapping注解的value屬性必須設置,至少通過請求地址匹配請求映射
@RequestMapping( value = {"/testRequestMapping", "/test"} ) public String testRequestMapping(){ return "success"; }
@RequestMapping注解的method屬性通過請求的請求方式(get或post)匹配請求映射
@RequestMapping注解的method屬性是一個RequestMethod類型的數組,表示該請求映射能夠匹配多種請求方式的請求
若當前請求的請求地址滿足請求映射的value屬性,但是請求方式不滿足method屬性,則瀏覽器報錯405:Request method ‘POST’ not supported
@RequestMapping( value = {"/testRequestMapping", "/test"}, method = {RequestMethod.GET, RequestMethod.POST} ) public String testRequestMapping(){ return "success"; }
注:
1、對于處理指定請求方式的控制器方法,SpringMVC中提供了>@RequestMapping的派生注解
處理get請求的映射–>@GetMapping
處理post請求的映射–>@PostMapping
處理put請求的映射–>@PutMapping
處理delete請求的映射–>@DeleteMapping
2、常用的請求方式有get,post,put,delete
但是目前瀏覽器只支持get和post,若在form表單提交時,為method設置了>其他請求方式的字符串(put或delete),則按照默認的請求方式get處理
若要發送put和delete請求,則需要通過spring提供的過濾器HiddenHttpMethodFilter
@RequestMapping注解的params屬性通過請求的請求參數匹配請求映射
@RequestMapping注解的params屬性是一個字符串類型的數組,可以通過四種表達式設置請求參數和請求映射的匹配關系
“param”:要求請求映射所匹配的請求必須攜帶param請求參數
“!param”:要求請求映射所匹配的請求必須不能攜帶param請求參數
“param=value”:要求請求映射所匹配的請求必須攜帶param請求參數且param=value
“param!=value”:要求請求映射所匹配的請求必須攜帶param請求參數但是param!=value
@RequestMapping( value = {"/testRequestMapping", "/test"} ,method = {RequestMethod.GET, RequestMethod.POST} ,params = {"username","password!=123456"} ) public String testRequestMapping(){ return "success"; }
注:
若當前請求滿足@RequestMapping注解的value和method屬性,但是不滿足params屬性,此時頁面回報錯400:Parameter conditions “username, password!=123456” not met for actual request parameters: username={admin}, password={123456}
@RequestMapping注解的headers屬性通過請求的請求頭信息匹配請求映射
@RequestMapping注解的headers屬性是一個字符串類型的數組,可以通過四種表達式設置請求頭信息和請求映射的匹配關系
“header”:要求請求映射所匹配的請求必須攜帶header請求頭信息
“!header”:要求請求映射所匹配的請求必須不能攜帶header請求頭信息
“header=value”:要求請求映射所匹配的請求必須攜帶header請求頭信息且header=value
“header!=value”:要求請求映射所匹配的請求必須攜帶header請求頭信息且header!=value
若當前請求滿足@RequestMapping注解的value和method屬性,但是不滿足headers屬性,此時頁面顯示404錯誤,即資源未找到
?
:表示任意的單個字符
*
:表示任意的0個或多個字符
\**
:表示任意的一層或多層目錄
注意:在使用\**
時,只能使用/**/xxx
的方式
@RequestMapping( value = {"/test/**/RequestMapping"} ) public String testRequestMapping(){ return "success"; }
原始方式:/deleteUser?id=1
rest方式:/deleteUser/1
SpringMVC路徑中的占位符常用于RESTful風格中,當請求路徑中將某些數據通過路徑的方式傳輸到服務器中,就可以在相應的@RequestMapping注解的value屬性中通過占位符{xxx}表示傳輸的數據,在通過@PathVariable注解,將占位符所表示的數據賦值給控制器方法的形參
@RequestMapping("/testRest/{id}/{username}") public String testRest(@PathVariable("id") String id, @PathVariable("username") String username){ System.out.println("id:"+id+",username:"+username); return "success"; } //最終輸出的內容為-->id:1,username:admin
“SpringMVC @RequestMapping注解有什么作用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。