Spring @RequestMapping 註解使用技巧

Spring @RequestMapping 註解

@RequestMapping 是 Spring Web 應用程序中最常被用到的註解之一。這個註解會將 HTTP 請求映射到 MVC 和 REST 控制器的處理方法上。

在這篇文章中,你將會看到 @RequestMapping 註解在被用來進行 Spring MVC 控制器方法的映射可以如何發揮其多才多藝的功能的。

一、Request Mapping 基礎用法

要配置 Web 請求的映射,就需要你用上 @RequestMapping 註解。
@RequestMapping 註解可以在控制器類的級別和/或其中的方法的級別上使用。
在類的級別上的註解會將一個特定請求或者請求模式映射到一個控制器之上。之後你還可以另外添加方法級別的註解來進一步指定到處理方法的映射關係。

下面是一個同時在類和方法上應用了 @RequestMapping 註解的示例:
在這裏插入圖片描述
如上述代碼所示,到 /home 的請求會由 get() 方法來處理,而到 /home/index 的請求會由 index() 來處理。

二、@RequestMapping 來處理多個 URI

你可以將多個請求映射到一個方法上去,只需要添加一個帶有請求路徑值列表的 @RequestMapping 註解就行了。
在這裏插入圖片描述
如你在這段代碼中所看到的,@RequestMapping 支持統配符以及ANT風格的路徑。前面這段代碼中,如下的這些 URL 都會由 indexMultipleMapping() 來處理:

localhost:8080/home

localhost:8080/home/

localhost:8080/home/page

localhost:8080/home/pageabc

localhost:8080/home/view/

localhost:8080/home/view/view

三、帶有 @RequestParam 的@RequestMapping

@RequestParam 註解配合 @RequestMapping 一起使用,可以將請求的參數同處理方法的參數綁定在一起。

@RequestParam 註解使用的時候可以有一個值,也可以沒有值。這個值指定了需要被映射到處理方法參數的請求參數, 代碼如下所示:
在這裏插入圖片描述
在代碼的第6行,id 這個請求參數被映射到了 thegetIdByValue() 這個處理方法的參數 personId 上。

如果請求參數和處理方法參數的名稱一樣的話,@RequestParam 註解的 value 這個參數就可省掉了, 如代碼的第11行所示。

@RequestParam 註解的 required 這個參數定義了參數值是否是必須要傳的。
在這裏插入圖片描述
在這段代碼中,因爲 required 被指定爲 false,所以 getName() 處理方法對於如下兩個 URL 都會進行處理:

/home/name?person=xyz

/home/name

@RequestParam 的 defaultValue 取值就是用來給取值爲空的請求參數提供一個默認值的。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章