文章目录
1、@Controller注解
@Controller注解用于标记一个类,使用它标记的类就是一个Spring MVC Controller对象,即一个控制器类。Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发出力气会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,而使用@RequestMapping注解的方法才是真正处理请求的处理器。
2、@RequestMapping注解
@RequestMapping注解可以用来注释一个控制器类,在这种情况下,所有方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value属性所指示的路径下。
使用@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”)。也支持如ant的基于路径模式(例如“/myPath/*,”)。在方法层面上,支持相对路径(例如“edit. do”) |
2.1 value属性
value属性将URL映射到方法上,由于value属性是@RequestMapping注解的默认属性,因此,如果只有唯一的属性,则可以省略属性名。但如果有超过一个属性,就必须写上value属性名称。value属性的值也可以是一个空字符串。
2.2 method属性
method属性用来指示该方法仅仅处理哪些HTTP请求方式。例如下面的代码段代表该方法只支持POST请求:
@RequestMapping(value="/hello",method=RequestMethod.POST)
也可以同时支持多个HTTP请求方式,如:
@RequestMapping(value