SpringMVC中 @RequestMapping 的多种属性

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地址通配符写法

?表示一个字符

??表示两个字符

*表示多个字符

**表示多重路径

猜你喜欢

转载自blog.csdn.net/weixin_43014205/article/details/85326281
今日推荐