1.概述
@RequestMapping的value(请求URL)、method(请求方法)、params(请求参数)、heads(请求头)[映射条件];他们之间是与的关系,联合使用多个条件可以让请求映射更加精确化;
params和headers支持简单的表达式:
param1:表示请求必须包含名为param1的请求参数;
!param1:表示请求不能包含名为param1的请求参数;
param1 != value1:表示请求包含名为param1的请求参数,但其值不能为value1;
{"param1=value1","param2"}:表示请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1;
2.代码
package com.yk.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @RequestMapping("/springmvc") @Controller public class SpringMVCTest { private static final String SUCCESS = "success"; /** * 可以使用params和headers来更加精确映射请求,params和headers支持简单的表达式 * @return */ @RequestMapping(value="testParamsAndHeaders",params={"username","age!=10"},headers={"Accept-Language:zh-CN,zh;q=0.9"}) public String testParamsAndHeaders(){ System.out.println("SpringMVCTest.testParamsAndHeaders()"); return SUCCESS; } /** * 使用method属性指定请求方式 * @return */ @RequestMapping(value="/testMethod",method=RequestMethod.POST) public String testMethod(){ System.out.println("SpringMVCTest.testMethod()"); return SUCCESS; } @RequestMapping("/testRequestMapping") public String testRequestMapping(){ System.out.println("SpringMVCTest.testRequestMapping()"); // return "success"; 下面会有很多,所以定义一个常量 return SUCCESS; } }
<a href="springmvc/testParamsAndHeaders?username=guigu&age=11">Test&testParamsAndHeaders</a>