@RequestMapping 的用法。
@RequestMapping中的参数
| 参数 | 说明 |
|---|---|
| value | 指定请求地址,指定的 url 可以是 url template 模式 |
| method | 请求类型 |
| consumes | 提交内容类型,application/json,application/xml 等 |
| produces | 指定返回内容类型 |
| params | requests 必须包含某值 |
| headers | 头 |
| path | 指定路径,和 value 一样 |
注解在Controller类上
将 @RequestMapping 注解在 Controller 类上,这时类的注解是相对于 Web 根目录,而方法上的是相对于类上的路径。
注意: @RequestMapping("/index") 等同于 @RequestMapping(value = "/index")
1 |
|
注解在Controller类的方法上
method属性:
通过method属性来指定请求的类型:
- GET(查)
- POST(增)
- PUT(改)
- DELETE(删)
通过 @RequestMapping(value="/login",method=RequestMethod.GET) 来指定 login() 方法 仅处理通过 GET 方式发来的请求
1 |
|
通过 @RequestMapping(value="/login",method=RequestMethod.POST) 来指定 login() 方法 仅处理通过 POST 方式发来的请求
1 |
|
由于在 RequestMapping 注解类中 method() 方法返回的是 RequestMethod 数组,所以可以给 method 同时指定多个请求方式,例如
1 |
|
params属性:
@RequestMapping 的 params 属性,该属性表示请求参数,也就是追加在 URL 上的键值对,多个请求参数以 & 隔开,例如:
http://localhost/SpringMVC/user/login?username=kolbe&password=123456则这个请求的参数为 username=kolbe 以及 password=123456,@RequestMapping 中可以使用 params 来限制请求参数,来实现进一步的过滤请求,举个例子:
1 |
|
该例中则表示 UserController 中的 login() 方法仅处理 /user/login 发来的请求,且必须带有 username=kolbe&password=123456 的请求参数,否则浏览器将返回 HTTP 404 的错误。
headers 属性
@RequestMapping 的 headers 属性,该属性表示请求头。
通过 @RequestMapping 中的 headers 属性,可以限制客户端发来的请求。
1 |
|
带有占位符的URL
带占位符的 URL 是 Spring 3.0 新增的功能,可以通过 @PathVariable 将 URL 中的占位符绑定到控制器的处理方法的参数中,占位符使用{}括起来。
1 |
|
在这个控制器中 show() 方法将可以接收 user/1、user/2、user/3 等等的路径请求,请求的方法必须为 GET,使用 @PathVariable 为应用实现 REST 规范提供了具大的便利条件。