Spring Boot教程(6) – 請求映射

以前的例子裏有演示過,控制器(Controller)裏的方法加上@GetMapping註解,就能夠處理對應路徑上的GET請求了。除了它,還有對應的@PostMapping、@PatchMapping、@PutMapping和@DeleteMapping等等。這些註解都來源於一個更通用的註解@RequestMapping,字面意思就是請求映射。咱們來看看它的用法:瀏覽器

圖中有一個名爲method的註解參數,指明瞭@RequestMapping處理的是GET請求。若是把這個method註解刪掉,那麼home方法就會處理髮送到」/」路徑的全部請求。若是你無心在一個方法裏處理多種請求的話,我建議你在註解參數裏寫明須要處理的HTTP請求類型,或者使用更方便的@GetMapping或者@PostMapping等。app

@RequestMapping不只能夠加到方法上,也能夠加到類上。加到類上的時候,類中方法所指定的路徑都是相對的。post

路徑變量

一個連接的某個部分多是動態的,因此你可能須要經過路徑變量來獲取。@PathVariable就是用來獲取路徑變量的,路徑中的佔位符須要用花括號{}包圍:ui

能夠看到@GetMapping的路徑參數裏有佔位符「userId」,爲了獲取到它的值,能夠給show方法添加一個參數,而且加上@PathVariable註解,咱們能夠看到int變量的名字是userId,這樣他就會去和路徑中的userId佔位符匹配。當你像上圖那樣在瀏覽器輸入地址後,userId變量就獲的了值23。23只是我爲了演示隨便寫的數字,他能夠是任何數字,只要int存的下。不過要是放個字符串,會提示出錯的。3d

若是你不想讓int變量名和佔位符名稱同樣,能夠給@PathVariable添加註解參數,這樣你的int變量就能夠隨意重構了,以下。cdn

查詢參數

網頁連接後面是有可能跟上查詢參數(Query Parameter)的,這時須要使用@RequestParam註解,他的用法@PathVariable的用法有些相似,都須要給請求處理方法增長參數。對象

若是變量名和查詢參數的名稱同樣的話,@RequestParam的註解參數能夠省略。圖中展現了省略和不省略兩種狀況。在瀏覽器中你若是忘了傳遞userId參數或者傳遞的不是數字,會報錯的。blog

若是用戶忘了傳參數,好說,給他個默認值就行:字符串

你也可使用Optional對象來接受參數,經過isPresent方法判斷有沒有參數傳遞過來。注意此時@RequestParam的required參數要設爲false。get

相關文章
相關標籤/搜索