1、RequestMapping注解既可以修饰方法,又可以修饰类型,类型指定的url相对于web跟路径,而方法修饰的url相对于类url;
2、RequestMapping的几个属性:
value:用于指定url;
method:用于指定请求方式;
params:请求参数,支持简单的表达式,例子: params = {"username","age!=10"}表示请求参数中必须有username age不能等于10.
headers:请求头,支持简单表达式,例子:headers = {"Accept Language=zh-CN,zh;q=0.8"}表示Accept Lanuage必须等于这个否则无法找到链接
这些参数用于更加精确指定请求。
3、RequestMapping注解支持ant类型通配符:
?:表示一个字符;
*:表示任意多个字符
**:匹配多层路径
例如:RequestMapping("testAnt/*/abc") 表示 /testAnt/sndbsbhds(任意多个字符)/abc
测试代码示例:
/**
* 四个属性用于指定更加详细的url headers = { "Accept-Language=zh-CN,zh;q=0.8,en;q=0.6" }
* "username",
*
* @return
*/
@RequestMapping(value = "/helloworld", method = RequestMethod.GET, params = {
"username", "age!=10" }, headers = { "Accept-Language=zh-CN,zh;q=0.8,en;q=0.6" })
public String hello() {
System.out.println("hello");
return SUCCESS;
} @RequestMapping(value = "/helloworld/*/abc", method = RequestMethod.GET)
public String hello1() {
System.out.println("hello");
return SUCCESS;
}
请求:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome page</title>
</head>
<body>
<a href="test/helloworld?username=&age=11">Hello World</a>
<br>
<br>
<a href="test/helloworld/adaf/abc">test Ant</a>
</body>
</html>