Spring MVC常用注释:@RequestMapping注释

1.@RequestMapping注释简介
开发者需要在控制器内部为每一个请求动作开发相应的处理方法。org.springframework.web.bind.annotation.RequestMapping注释指示Spring用哪一个类或方法处理请求动作,该注释可用于类或方法。
@RequestMapping注释可以用来注释一个控制器类,在这种情况下,所有方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value属性所指示的路径下。
使用@RequestMapping注释可指定下表所示的属性
package masterSpringMvc.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.Model;
@Controller
public class HelloController
{
    @RequestMapping("/")
    public String hello(Model model)
    {
    model.addAttribute("message","123456");
        return "hello";
    }
   
    @RequestMapping("/hello_page")
    public String helloPage(Model model)
    {
    return "helloPage";
    }
   
}
属性 类型 必填 说明
value String 用于将指定请求的实际地址映射到方法上
name String 给映射地址指定一个别名
method RequestMethod 映射指定请求的方法类型,包括GET,POST,HEAD,OPTIONS,PUT,PATCH,DELETE,TRACE
consumes String 指定处理请求的提交内容类型(content-type),例如application、json
produces String 指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型
params String 指定request中必须包含某些指定的header值时,才能让该方法处理请求
headers String 指定request中必须包含某些指定的header值,才能让该方法处理请求
path String 在Servlet环境中只有:uri路径映射(/myPath.do)。也支持如ant的基于路径模式,(/myPath/*,)。在方法层面上,支持相对路径,如(edit.do)
(1)value属性
@RequestMapping是一个用来处理请求地址映射的注释,可以使用@RequestMapping注释一个方法或类
@RequestMapping(value="/“)
该示例使用@RequestMapping注释的value属性将URL映射到方法上。
由于value属性是@RequestMapping注释的默认属性,因此,如果只有唯一的属性,则可以省略属性名,即如下两个注释含义相同
@RequestMapping("/“)
@RequestMapping(value="/“)
但如果有超过一个属性,就必须写上value属性名称。
(2)method属性
该属性用来指示该方法仅处理哪些HTTP请求方式
@RequestMapping(value="/hello_page",method=RequestMethod.POST)
(3)consumes属性
该属性指定处理请求的提交内容类型(Content-Type)
@RequestMapping(value="/hello_page",method=RequestMethod.POST,consumes="application/json”)
(4)produces属性
该属性指定返回的内容类型,返回内容类型必须是request请求头(Accept)中所包含的类型。
@RequestMapping(value="/hello_page",method=RequestMethod.POST,consumes="application/json",produces="application/json”)
(5)params属性
该属性指定request中必须包含某些参数时,才让该方法处理:
@RequestMapping(value="/hello_page",method=RequestMethod.POST,consumes="application/json",produces="application/json",params="myParam=myValue”)
(6)header属性
该属性指定request中必须包含某些指定的header值,才能让该方法处理请求。
@RequestMapping(value="/hello_page",method=RequestMethod.POST,consumes="application/json",produces="application/json",params="myParam=myValue",headers="Referer=http://www.fkit.org")