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 个或以上时,他们的关系是与的关系。