@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。