Spring MVC 使用@RequestMapping注解为控制器指定可以处理哪些URL请求
在控制器的类型定义及方法定义处都可以进行标注
-类定义处:提供初步的请求映射信息,相对于web应用的根目录
-方法处:提供进一步的细分映射信息,相对于类定义处的url
@RequestMapping(value="") => value 用来指定访问当前 方法的url
注意:
当一个注解中只有一个value属性,那么这个value属性名称可以省略掉,直接赋值即可。
@RequestMapping除了可以修饰方法,还可以修饰类
RequestMapping常用属性:
value: 表示请求url
method: 表示请求的方法
params: 表示请求参数
headers: 表示请求头的映射条件
这些参数是与的关系,联合使用多个条件可以让请求映射更加精确化
其中params和headers支持简单的表达式:
param1: 表示请求必须包含名为param1的参数
!param1: 表示请求不能包含名为param1的请求参数
param1!=value1: 表示请求包含名为param1的请求参数,但是其值不能为value1
{"param1 = value1", "param2"}: 表示请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1
关于method的实例:
@RequestMapping(value="/hello", method=RequestMethod.POST)
public String hello () {
System.out.println("进入到hello方法中!");
return "success";
}
说明:访问当前方法必须通过hello的映射,并且请求方法必须为post请求
关于params的实例:
@RequestMapping(value="/hello", method=RequestMethod.GET, params={"name"})
public String hello () {
System.out.println("进入到hello方法中!");
return "success";
}
请求参数中必须包含name属性的get的请求
例如:http://localhost:8080/myproject/classRequestMapping/hello?name=jack
关于headers的实例:
@RequestMapping(value="/hello", method=RequestMethod.GET, params={"name"}, headers= {"accept=text/html"})
public String hello () {
System.out.println("进入到hello方法中!");
return "success";
}
说明:要求请求为get请求,并且具有name属性的参数,请求报头中必须支持text/html这种文件类型