@RequestMapping 注解
@RequestMapping 注解
开发者需要在控制器内部为每一个请求动作开发相应的处理方法。org.springframework.web.bind.annotation.RequestMapping 注解类型指示Spring用哪一个类或方法处理请求动作,该注解可用于类和方法。
@RequestMapping可以用来注释一个控制器类,在这种情况下,所有方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value属性所指示的路径下。示例代码如下:
@Controller @RequestMapping(value="/user") public class UserController{ @RequestMapping(value="/register") public String register(){ return "register"; } @RequestMapping(value="/login") public String login(){ return "login"; } }
由于UserController类中加了value="/user"的@RequestMapping的注解,因此所有相关路径都要加上"/user",此时方法被映射到了如下请求URL(统一资源定位器):
http://localhost:8080/user/register
http://localhost:8080/user/login
使用@RequestMapping注解可指定如下表所示的属性:
属性 | 类型 | 是否必要 | 说明 |
value | String[] | 否 | 用于将指定请求的实际地址映射到方法上 |
name | String | 否 | 给映射地址指定一个别名 |
method | RequestMethod[] | 否 | 映射指定请求的方法类型,包括GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE |
consumes | String[] | 否 | 指定处理请求的提交内容类型(Content-Type),例如application/json、text/html等 |
produces | String[] | 否 | 指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型 |
params | String[] | 否 | 指定request中必须包含某些参数值时,才让该方法处理 |
headers | String[] | 否 | 指定request中必须包含某些指定的header值,才能让该方法处理请求 |
Path | String[] | 否 | 在Servlet环境中只有:uri路径映射(例如:"/myPath.do")。在方法层面上,支持相对路径(例如:"edit.do") |