RequestMapping註解
一、 RequestMapping
註解的作用
我們可以看一下RequestMapping的源碼:
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
}
作用:用於建立請求URL和處理請求方法之間的對應關係。
二、出現位置
1. 類上
請求URL的第一級訪問目錄。此處不寫的話,就相當於應用的根目錄。寫的話需要以/
開頭。
它出現的目的是爲了使我們的 URL 可以按照模塊化管理:
例如:
賬戶模塊:
/account/add
/account/update
/account/delete
訂單模塊:
/order/add
/order/update
/order/delete
上面的例子中,/account
和/order
都是寫在類上,使我們的URL更加精細。
2. 方法上
請求URL的第二級訪問目錄。
3. 示例
Controller:
package com.veeja.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 控制器類
*
* @Author veeja
* 2020/5/16 21:42
*/
@Controller
@RequestMapping(path = "/user")
public class HelloController {
@RequestMapping(path = "/hello")
public String sayHello() {
System.out.println("Hello SpringMVC");
return "success";
}
/**
* 測試RequestMapping註解
* @return
*/
@RequestMapping(path ="/testRequestMapping")
public String testRequestMapping(){
System.out.println("測試RequestMapping註解...");
return "success";
}
}
請求網頁:
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入門程序</h3>
1.<a href="user/hello">入門程序</a>
<br>
2.<a href="user/testRequestMapping">RequestMapping註解</a>
</body>
</html>
二、 RequestMapping
註解的屬性
屬性:
-
value
:用於指定請求的 URL。它和 path 屬性的作用是一樣的。 -
method
:用於指定請求的方式。
method是枚舉類型。public enum RequestMethod { GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; private RequestMethod() { } }
-
params
:用於指定限制請求參數的條件。它支持簡單的表達式。要求請求參數的 key 和 value 必須和 配置的一模一樣。
例如:
params = {"accountName"}
,表示請求參數必須有 accountName
params = {"moeny!100"}
,表示請求參數中 money 不能是 100。 -
headers
:用於指定限制請求消息頭的條件。
注意: 以上四個屬性只要出現 2 個或以上時,他們的關係是與的關係。