@RequestMapping 注解
开发者须要在控制器内部为每个请求动做开发相应的处理方法。org.springframework.web.bind.annotation.RequestMapping 注解类型指示Spring用哪个类或方法处理请求动做,该注解可用于类和方法。
@RequestMapping能够用来注释一个控制器类,在这种状况下,全部方法都将映射为相对于类级别的请求,表示该控制器处理的全部请求都被映射到value属性所指示的路径下。示例代码以下:html
@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注解可指定以下表所示的属性:web
属性 | 类型 | 是否必要 | 说明 |
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") |