一. 回顾
前面Day2——Spring mvc的HelloWorld讲到了怎么使用Springmvc创建一个HelloWorld。今天讲述下RequestMapping注解。
二. @RequestMapping注解
RequestMapping,称为映射请求
2.1 RequestMapping注解 可标注的位置
- SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL
- 在控制器的类定义及方法定义处都可标注@RequestMapping
区别 | 解释 |
---|---|
标记在类上 | 提供初步的映射请求信息,相对于WEB应用的根目录 |
标记在方法上 | 提供进一步的细分映射信息。相对于标记在类上定义的URL |
- 若类上未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录
- 作用:DispatcherServlet截获请求后,就通过控制器上的@RequestMapping提供的映射信息确定请求所对应的处理方法
2.2 RequestMapping注解 映射请求的方式
/**
* @RequestMapping 映射请求方式
* 常用的请求方式 : get post put delete
*/
@RequestMapping(value="/testRequestMappingMethod", method= {RequestMethod.GET,RequestMethod.POST})
public String testRequestMappingMethod() {
return "success";
}
2.3 RequestMapping注解 请求参数和请求头信息
/**
* @RequestMapping 映射请求参数 请求头信息:
* params:
* headers:
*
* 支持简单的表达式:
* name1:要求请求中必须携带name1的请求参数
* !name1:请求中不能携带name1的请求参数
* name1=value1:要求请求中必须携带name1=value1的请求参数
* name1=value1:要求请求中必须携带name1,但不能等于value1的请求参数
*/
@RequestMapping(value="testRequestMappingParamsAndHeaders", params= {"username", "age"}
,headers= {"Accept-Language=zh-CN,zh;q=0.9"}
)
public String testRequestMappingParamsAndHeaders() {
return "success";
}
2.4 RequestMapping注解 支持Ant风格的URL
/**
* @RequestMapping 支持Ant风格的URL:
* ?:代表一个任意字符
* *:代表多个任意字符
* **:代表多层路径
*/
@RequestMapping(value="/testRequestMappingAnt/*/a?")
public String testRequestMappingAnt() {
return "success";
}
2.5 RequestMapping注解 映射请求占位符@PathVariable注解
作用是用于传值
/**
* @RequestMapping @PathVariable:
*
*/
@RequestMapping(value="testRequestMappingPathVariable/{username}/{age}")
public String testRequestMappingPathVariable(@PathVariable("username")String username,
@PathVariable("age")Integer age) {
System.out.println(username + "," + age);
return "success";
}