@RequestMapping
注解用来映射 URL 到控制器类或方法上,指示Spring
用那一个类或方法来处理请求动作。
当用来注解一个控制器类时,所有方法都将映射为相对类级别的请求,再找该类下方法级别的映射,最终的 URI
是类的映射地址拼接上方法映射地址。
@RequestMapping 注解属性
value 属性
通过该属性将URL映射到类或方法上,该属性是 @RequestMapping 注解的默认属性,值是个字符串数组,
- 如果只有唯一的属性,则可以省略属性名,如下示例,
- 如果有超过一个属性,则必须写上
value
属性名称。
- 该属性也可以是一个空字符串,则 URL 映射的是项目根路径,与单个斜杠映射相同。
1 2 3 4
| RequestMapping(value={"/admin","/root"}) RequestMapping("/admin") RequestMapping("/") RequestMapping("")
|
method 属性
该属性用于指示该方法对那些 HTTP 请求方式做处理。
如果没有指定,则可以处理任意的 HTTP 请求方式。
该属性也可以设置多个值。
1 2
| @RequestMapping(value="/user", method=RequestMethod.POST) @RequestMapping(value="/user", method={RequestMethod.POST, RequestMethod.GET})
|
consumes 属性
该属性指定处理请求的提交内容类型(Content-Type
)
1
| @RequestMapping(value = "/user", method=RequestMethod.POST, consumes="application/json")
|
produces 属性
定制返回response
的媒体类型和字符集。仅处理指定的 request 请求头(Accept)中所包含的类型,同时以相同的内容类型返回。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| package com.controller;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
import com.entity.User; import com.service.impl.DemoServiceImpl;
@RestController @RequestMapping("/rest") public class RestControllerDemo { @Autowired DemoServiceImpl demoServiceImpl; @RequestMapping(value = "/getText", produces = "text/plain;charset=UTF-8") public String getText() { return demoServiceImpl.saySomething(); } @RequestMapping(value = "/getJson", produces = "application/json;charset=UTF-8") public User getJson() { return new User("张三", 25); } @RequestMapping(value = "/getXML", produces = "application/xml;charset=UTF-8") public User getXML(User user) { return new User("李四",35); } }
|
params 属性
指定 request 中必须包含某些参数值时,才让该方法处理。
1 2
| @RequestMapping(value="/user", method=RequestMethod.POST, params="myParam=myValue")
|
相关参考
- Spring Web MVC 官方文档:1.3.2. Request Mapping