1.value
用来设置请求路径,它的值是一个字符串数组,可以设置多个路径同时访问对应的一个方法
示例:
<a href="${pageContext.request.contextPath}/testrequestmapping1">请求方式1</a><br/>
<a href="${pageContext.request.contextPath}/testrequestmapping2">请求方式2</a>
@RequestMapping(value = {"/testrequestmapping1","/testrequestmapping2"})
public String testrequest(){
return "/second.jsp";
}
2.method
用来设置映射的请求方式,质是RequestMethod类型的数组,
如果没有写,则没有限制,post与get都能请求到对应方法
如果指定了请求类型,则必须得是相应的请求类型才能访问到对应方法
示例:
<form action="${pageContext.request.contextPath}/testmethod" method="post">
<input type="submit" value="测试">
</form>
@RequestMapping(value = "/testmethod",method = {RequestMethod.GET})
public String testmethod(){
System.out.println("0.0");
return "/second.jsp";
}
3.params
必须设置对应的请求参数才能访问到对应的内容
示例:
@RequestMapping(value = "/testparams",params = {"name=aaa"})
public String testparams(){
System.out.println("^-^");
return "/second.jsp";
}
<a href="${pageContext.request.contextPath}/testparams?name=aaa">请求方式3</a><br/>
请求的到
<a href="${pageContext.request.contextPath}/testparams?name=bbb">请求方式3</a><br/>
请求不到
4.headers
设置请求头,只要请求头符合条件的才访问的到
示例:
<a href="${pageContext.request.contextPath}/testheaders">请求方式4</a><br/>
@RequestMapping(value = "/testheaders",
headers = {"Referer=http://localhost:8080/requestmapping.jsp"}
)
public String testheaders(){
System.out.println("^-^");
return "/second.jsp";
}
这里设置了要访问该方法,请求头中的Referer必须是从requestmapping.jsp中转发过来的,这样可以访问
如果在浏览器中直接输入 http://localhost:8080/testheaders.action 是访问不到的
5.@requestMapping地址通配符写法
?表示一个字符
??表示两个字符
*表示多个字符
**表示多重路径