@RequestMapping 註解
開發者須要在控制器內部爲每個請求動做開發相應的處理方法。org.springframework.web.bind.annotation.RequestMapping 註解類型指示Spring用哪個類或方法處理請求動做,該註解可用於類和方法。
@RequestMapping能夠用來註釋一個控制器類,在這種狀況下,全部方法都將映射爲相對於類級別的請求,表示該控制器處理的全部請求都被映射到value屬性所指示的路徑下。示例代碼以下:html
@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註解可指定以下表所示的屬性:web
屬性 | 類型 | 是否必要 | 說明 |
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") |