@RequestMapping(SpringMVC重点注解)

@RequestMapping

1.功能

把浏览器发送的请求和@RequestMapping注解所设置的请求信息进行匹配,若匹配成功,则@RequestMapping所标记的方法就是处理当前请求的方法

2.标记的位置

标记在类上,为标记在方法上的@RequestMapping设置一个前缀的路径

标记在方法上,为需要处理的请求设置一个具体的路径

@Controller
@RequestMapping("/test")
public class TestRequestMapping{
    
    @RequestMapping("/success")//此时的真实路径为/test/success
    public String success(){
        return "success";
    }
}

3.属性

1>value属性

@RequestMapping注解的value属性是通过请求的请求路径匹配请求映射

value属性是字符串数组类型,因此可以设置多个请求的请求路径,由注解所标记的方法可以处理value中所设置的每一个路径所对应的请求

@Controller
@RequestMapping("/test")
public class TestRequestMapping{
    
    @RequestMapping({"/success","/abc"})//此时的真实路径为/test/success|/test/abc
    public String success(){
        return "success";
    }
}
<a th:href="@{/test/success}">测试@RequestMapping注解的value属性</a>
<a th:href="@{/test/abc}">测试@RequestMapping注解的value属性</a>

2>method属性

@RequestMapping注解的method属性是通过请求的请求路径匹配请求映射

method属性是RequestMethod数组类型,因此可以设置多种请求方式,当前注解@RequestMapping注解所标记的方法处理的请求的请求方式只要满足其中一种即可

若@RequestMapping注解的Value属性可以匹配,但是method属性无法匹配此时报错405: Request method ‘GET’ not supported

@Controller
@RequestMapping("/test")
public class TestRequestMapping{
    
    @RequestMapping(
        value = {"/success","/abc"}//此时的真实路径为/test/success|/test/abc
        method = {RequestMethod.GET,RequestMethod.POST}
    )
    public String success(){
        return "success";
    }
}

3>params属性

@RequestMapping注解的params属性是通过请求的请求参数匹配请求映射

若@RequestMapping注解的value属性可以匹配,但是params属性无法匹配,页面报错400

params属性中可以使用四种表达式

param :匹配的请求必须携带请求参数param

!param :匹配的请求一定不能携带请求参数param

param=value:匹配的请求必须携带请求参数param,且值必须为value

param!=value:匹配的请求可以不携带请求参数param,若携带则一定不能为value

@Controller
@RequestMapping("/test")
public class TestRequestMapping{
    
    @RequestMapping(
        value = {"/success","/abc"}//此时的真实路径为/test/success|/test/abc
        params = {"username","password!=123456"}//必须有用户名且密码不能为123456
    )
    public String success(){
        return "success";
    }
}

4>headers属性

headers方法同params,因为头信息就是键值对

若@RequestMapping注解的value属性可以匹配,但是headers属性无法匹配,页面报错404

@Controller
@RequestMapping("/test")
public class TestRequestMapping{
    
    @RequestMapping(
        value = {"/success","/abc"}//此时的真实路径为/test/success|/test/abc
        headers = "Lock Host"
    )
    public String success(){
        return "success";
    }
}

4.SpringMVC支持ant风格的路径

可以在@RequestMapping注解的value属性中,设置路径时使用一些特殊的符号表示特殊的含义

?:任意的单个字符,注意不能匹配?和/

*:任意个数的任意字符,注意不能匹配?和/

星星:任意层数的任意目录,注意不能匹配?,使用**时,前后和中间都不可以有其他内容

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值