RequestMapping注解
一、使用方式以及介绍
1). 源码
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
...属性...
}
2). 作用
用于建立请求URL和处理请求方法之间的对应关系。
3). 标注的位置以及意义
1.标注在类上
请求URL的一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以
/开头;它出现的目的是为了使我们的URL可以按照模块化管理。
- 比如:用户模块
/user/login/user/unlogin/user/register
2. 标注在方法上
请求URL的第二级访问目录
4). 属性详解
以下四个属性的关系为 与&&
-
value: 用于指定请求的URL。和path属性一样 -
method: 用于指定请求的方式:post/get -
params: 用于指定限制请求参数的条件。支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。如下
/*
params = {"username"} 请求参数必须有username
params = {"money!=100"} 请求参数中的money不能为100
*/
-
headers: 用于指定限制请求消息头的条件。
headers = {"token"}表示请求头里面必须要有token属性
二、使用案例
1). 【标记位置】+【method属性】+【params属性】
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/** 控制器 */
@Controller
@RequestMapping(path = "/user", params = {"username"})
public class HelloController {
@RequestMapping(path = "/login", method = RequestMethod.GET)
public String loginOne() {
System.out.println("login One");
return "success";
}
@RequestMapping(path = "/login", method = RequestMethod.POST, params = {"password!=123"})
public String loginTwo() {
System.out.println("login two");
return "success";
}
}
index.jsp中的核心代码
<h3>入门案例</h3>
<a href="user/login?username=lc">登录1</a> <br>
<%-- 当我们使用此种方式配置时,不要在访问URL前面加/,否则无法找到资源 --%>
<form action="${pageContext.request.contextPath}/user/login" method="post">
<input type="text" name="username" value="lc">
<input type="password" name="password">
<input type="submit" value="登录2">
</form>