原文链接:http://my.oschina.net/zhdkn/blog/316530
没看完:http://blog.csdn.net/kobejayandy/article/details/12690041
@RequestMapping 详解
"@RequestMapping" 的属性
value: 指定请求的实际url
1. 普通的具体值。如前面的value="/book"。
2. 含某变量的一类值
@RequestMapping(value="/get/{bookId}")
public String getBookById(@PathVariable String bookId,Model model){
model.addAttribute("bookId", bookId);
return "book";
}
路径中的bookId可以当变量,@PathVariable 注解即提取路径中的变量值
3.ant风格
@RequestMapping(value="/get/id?"):可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
@RequestMapping(value="/get/id*"):可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
@RequestMapping(value="/get/id/*"):可匹配“/get/id/abc”,但不匹配“/get/idabc”;
@RequestMapping(value="/get/id/**/{id}"):可匹配“/get/id/abc/abc/123”或“/get/id/123”,也就是Ant风格和URI模板变量风格可混用;
4. 含正则表达式的一类值
@RequestMapping(value="/get/{idPre:\\d+}-{idNum:\\d+}"):可以匹配“/get/123-1”,但不能匹配“/get/abc-1”,这样可以设计更加严格的规则。
可以通过@PathVariable 注解提取路径中的变量(idPre,idNum)
5. 或关系
@RequestMapping(value={"/get","/fetch"} )即 /get或/fetch都会映射到该方法上
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
@RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})
params
@RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del
headers
@RequestMapping(value="/header/id", headers = "Accept=application/json"):表示请求的URL必须为“/header/id 且 请求头中必须有“Accept =application/json”参数即可匹配。