Spring MVC 框架中的@RequestMapping注解可以让任何一个普通类变成了一个可以处理HTTP请求的控制器。
控制器的类定义和方法定义都可以标注@RequestMapping注解。但是在类定义处的注解提供初步的请求映射信息,方法定义处提供进一步的映射信息。
@RequestMapping通过URL请求进行映射
需要注意的是,@RequestMapping在类定义处指定的URL是相对于Web应用的部署路径。而在方法定义处指定的URL是相对于类定义处指定的URL。如果类方法没有定义@RequestMapping,则方法处定义的@RequestMapping的URL就是相对于Web应用的部署路径。
@RequestMapping不但支持标准的URL,还支持Ant风格(?、*、**)和带{xxx}点位符的URL。通过@PathVariable可以将URL中的占位符参数绑定到控制器处理方法的入参中。
@RequesMapping 通过请求参数,请求方法和请求头进行映射
@RequestMapping中的value method params headers分别表示请求URL,请求方法,请求参数和请求报文头。它们之间是与的关系,使用多个条件可以让请求更加精确化。
@RequestMapping(method=RequestMethod.POST) 使用请求方法进行映射
@RequestMapping(params=”userId”) 表示请求参数中的userId才行
@RequestMapping(headers=”content-type=text/*”) 根据请求报文头进行映射 。
请求处理方法的签名
处理方法的返回值一般是ModelAndView或String,前者包含模型和逻辑视图名,而后者仅代表逻辑视图名。