第三节:@RequestMapping 映射请求参数

一、映射规定请求参数

  @RequestMapping 的 params 表示规定映射请求参数。

二、请求参数

  params:用来规定客户端传到服务器的数据,支持表达式
  params 的简单的表达式:
param1: 表示请求必须包含名为 param1 的请求参数

!param1: 表示请求不能包含名为 param1 的请求参数

param1 != value1: 表示请求包含名为 param1 的请求参数,但其值不能为 value1

{"param1=value1", "param2"}: 请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1

  

三、代码示例

  (1)定义控制器方法

//了解: 可以使用 params 来更加精确的映射请求. params 支持简单的表达式.
@RequestMapping(value="/testParams", params= {"username","age!=10"})
public String testParams(){
    System.out.println("testParams...");
    return "success";
}

  (2)请求URL

<!--设置请求参数信息 -->        
<a href="springmvc/testParams">testParams</a>

  (3)测试:使用火狐 或 Chrome 浏览器 debug 测试

    ① 测试有参数情况(不正确)

      情况一:没有参数情况

请求:
<a href="springmvc/testParams">testParams</a>

异常:
No matching handler method found for servlet request: path '/springmvc/testParams', method 'GET', parameters map[[empty]

  

      情况二:有参数,但不匹配指定的参数的键

请求:
<a href="springmvc/testParams?age=11">testParams</a>

异常:
No matching handler method found for servlet request: path '/springmvc/testParamsAndHeaders', method 'GET', parameters map['age' -> array<String>['11']]

    ② 测试有参数情况(正确)

 <a  href="springmvc/testParams?username=springmvc&age=15">testParams</a>

  

原文地址:https://www.cnblogs.com/niujifei/p/15502578.html