@RequestMapping 注解
開發者需要在控制器內部為每一個請求動作開發相應的處理方法。org.springframework.web.bind.annotation.RequestMapping 注解類型指示Spring用哪一個類或方法處理請求動作,該注解可用於類和方法。
@RequestMapping可以用來注釋一個控制器類,在這種情況下,所有方法都將映射為相對於類級別的請求,表示該控制器處理的所有請求都被映射到value屬性所指示的路徑下。示例代碼如下:
@Controller @RequestMapping(value="/user") public class UserController{ @RequestMapping(value="/register") public String register(){ return "register"; } @RequestMapping(value="/login") public String login(){ return "login"; } }
由於UserController類中加了value="/user"的@RequestMapping的注解,因此所有相關路徑都要加上"/user",此時方法被映射到了如下請求URL(統一資源定位器):
http://localhost:8080/user/register
http://localhost:8080/user/login
使用@RequestMapping注解可指定如下表所示的屬性:
| 屬性 | 類型 | 是否必要 | 說明 |
| value | String[] | 否 | 用於將指定請求的實際地址映射到方法上 |
| name | String | 否 | 給映射地址指定一個別名 |
| method | RequestMethod[] | 否 | 映射指定請求的方法類型,包括GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE |
| consumes | String[] | 否 | 指定處理請求的提交內容類型(Content-Type),例如application/json、text/html等 |
| produces | String[] | 否 | 指定返回的內容類型,返回的內容類型必須是request請求頭(Accept)中所包含的類型 |
| params | String[] | 否 | 指定request中必須包含某些參數值時,才讓該方法處理 |
| headers | String[] | 否 | 指定request中必須包含某些指定的header值,才能讓該方法處理請求 |
| Path | String[] | 否 | 在Servlet環境中只有:uri路徑映射(例如:"/myPath.do")。在方法層面上,支持相對路徑(例如:"edit.do") |
