SpringMVC知识盘点及总结5@RequestMapping注解的params属性

@RequestMapping注解的params属性

知识点四、

@RequestMapping注解的params属性:
@RequestMapping注解的params属性通过请求的请求参数匹配请求映射
@RequestMapping注解的params属性是一个字符串类型的数组,可以通过四种表达式设置请求参数和请求映射的匹配关系

"param”:要求请求映射所匹配的请求必须携带param请求参数,例如username
"!param”:要求请求映射所匹配的请求必须不能携带param请求参数,例如!username
"param=value":要求请求映射所匹配的请求必须携带param请求参数且param=value,例如username=admin
"param!=value":要求请求映射所匹配的请求必须携带param请求参数但是param!=value,例如password!=123456

练习测试一下:
1. //测试必须携带username请求参数
      @RequestMapping(value = "/testParamsAndHeaders",
                params = {"username")
          public  String testParamsAndHeaders(){
              return "success";
          }

如果不携带username浏览器会报400错误:Parameter conditions "username" not met for actual request parameters:
   SpringMVC知识盘点及总结5@RequestMapping注解的params属性
        这句话的意思是:实际的请求参数不满足参数请求条件"username",即没有该参数

当携带username之后,访问即成功
 <a th:href="@{/hello/testParamsAndHeaders?username='张三'}" >测试RequestMapping注解的Params属性</a>


此处需要注意,在idea2021版本以下,在Thymeleaf中问号传参的问号会标红(2021版本不标红),
标准写法:使用小括号来传参
1  <a th:href="@{/hello/testParamsAndHeaders(username='张三')}" >测试RequestMapping注解的Params属性</a>


2.同理测试不能携带username参数:
1          @RequestMapping(value = "/testParamsAndHeaders",
2                         params = {"!username")
3                 public  String testParamsAndHeaders(){
4                     return "success";
5                 }


<a th:href="@{/hello/testParamsAndHeaders?username='张三'}" >测试RequestMapping注解的Params属性</a>

如果携带username参数浏览器会报与上面一样的400错误:
Parameter conditions "username" not met for actual request parameters:

3.接下来一起测试一下后两种吧!
1       @RequestMapping(value = "/testParamsAndHeaders",
2                     params = {"username=admin","password!=123456"})
3             public  String testParamsAndHeaders(){
4                 return "success";
5             }


这个用来测试同时携带username和password请求参数,并且username的值必须为admin
password的值不能是123456,必须同时满足条件才能访问成功。如果不成功,同样会报400错误

      SpringMVC知识盘点及总结5@RequestMapping注解的params属性

 


        SpringMVC知识盘点及总结5@RequestMapping注解的params属性

 

 

 

 
上一篇:springMVC-springMVC执行原理


下一篇:手把手教网络工程师写python脚本,实现ssh登录交换机修改配置