Spring MVC的@RequestMapping注解详解

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

猜你喜欢

转载自blog.csdn.net/java_xuetu/article/details/80041059