@RequestMapping注解:映射请求来的url,可以写在类上面,也可以写在方法上面,方法上面的是必须写的。如果在类上面写了这个注解,那么请求的url就必须把类上面的路径加上去了。
它的属性有:
value:请求的url method:请求方式 params:请求参数 heads:请求头
其中params和headers支持简单的表达式:
1、param1:表示请求必须包含名为param1的请求参数
2、!param1:表示请求不能包含名为param1的请求参数
3、param1!=value1:表示请求包含名为param1的请求参数,但其值不能为value1
4、{"param1=value1","param2"}:表示请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1
例子如下:
/** * @RequestMapping:映射请求来的url * value:请求的url * method:请求方式 * params:请求参数 * heads:请求头 * @return */ @RequestMapping(value="helloworld",method=RequestMethod.GET,params={"userName","age!=10"},headers={"Accept-Language"}) public String hello(HttpServletRequest request){ request.getHeader("Accept-Language"); System.out.println(request.getHeader("Accept-Language")); System.out.println("hello world"); return "success"; }
@RequestMapping注解也支持通配符,需要使用Ant风格,它支持3种匹配符
1、? 匹配文件名中的一个字符
2、* 匹配文件名中的任意字符
3、** 匹配多层路径
如:
/** * @RequestMapping:支持通配符,要使用Ant风格,它支持3种匹配符 * 1、? 匹配文件名中的一个字符 * 2、* 匹配文件名中的任意字符 * 3、** 匹配多层路径 * @return */ @RequestMapping("spring/*/hello2") public String hello2(){ System.out.println("hello world"); return "success"; }这个方法的请求路径,就是url=spring/任意字符/hello2。