@RequestMapping映射及其属性
@RequestMapping可以写在类前和方法前。
@RequestMapping属性
value:
代表映射,值可以不和类名、方法名一致
metod:
指定请求方式,可以是get、post、delete、put
params
设置name=“xxx”,指定请求参数,可以是多个
params = {“name=lyh”,“age!=2”,"!sss"}
表示请求参数name必须为lyh,且age不能为2(可以不包含age),且不能包含sss参数
headers
设置请求头信息
ant风格的请求路径
?代表单字符
*代表任意个字符(0个或多个)
**代表任意目录
@RequestMapping(value = “welcome/**/test” )
可以请求welcome和test之间的任意目录
通过@PathVariable获取动态参数(获取用户请求信息)
用户请求:
<a href="handler/welcome/lyh">first springmvc</a>
通过@PathVariable获取:
@RequestMapping(value = "welcome/{name}" )
public String welcome(@PathVariable("name") String name) {
System.out.println(name);
return "sucess";
}
注意:通过@PathVariable获取动态参数有很大的弊端
当用户请求参数和@RequestMapping映射路径相同时,则有可能拿不到用户请求。
请求代码:
<a href="handler/welcome/lyh">first springmvc</a>
获取代码:
@RequestMapping(value = "welcome/{name}" )
public String welcome(@PathVariable("name") String name) {
System.out.println(name);
return "sucess";
}
@RequestMapping(value = "welcome/lyh")
public String welcome1() {
System.out.println("welcome1");
return "sucess";
}