@RequestMapping注解

风流不在谈锋胜,袖手无言味最长。这篇文章主要讲述@RequestMapping注解相关的知识,希望能为你提供帮助。
Spring MVC中用于参数绑定的注解有很多,都在org.springframework.web.bind.annotation包中,根据它们处理的request的不同内容部分可以分为四类(主要讲解常用类型)
> > 处理request body 部分的注解: @RequestParam,@RequestBody
> > 处理reuqest url 部分的注解: @PathVariable
> > 处理request header 部分的注解: @RequestHeader,@CookieValue
> > 处理attribute类型的注解:  @SessionAttibute,@ModelAttribute
@RequestMapping注解:
**@RequestMapping虽然也在org.springframework.web.bind.annotation下面,但是严格来说,他并不属于参数绑定注解
开发者需要在控制器内部为每一个请求动作开发相应的处理方法。org.springframework.web.bind.annotation.RequestMapping注解类型指示Spring用哪一个类或方法来处理请求动作,该注解可用于类或方法。
@RequestMapping可以用来注释一个控制器类,在这种情况下,所有方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value属性所指示的路径下

@Controller @RequestMapping(value = "https://www.songbingjia.com/user") public class UserController{ @RequestMapping(value = "https://www.songbingjia.com/register") public String register(){ return "register"; } @RequestMapping(value = "https://www.songbingjia.com/login") public String login(){ return "login"; } }

请求URL  :  http://localhost:8080/user/register
http://localhost:8080/user/login
> > 1.value属性
@RequestMapping(value = "https://www.songbingjia.com/hello") public ModelAndView hello(){ return ...; }

该实例使用@RequestMapping注释的value属性将URL映射到方法上,在这个例子中,将hello映射到hello方法上,使用如下URL访问应用时将由hello方法进行处理:
http://localhost:8080/context/hello
【@RequestMapping注解】由于value属性是@RequestMapping注释的默认属性,因此,如果只有唯一的属性,则可以省略属性名
@RequestMapping(value = "https://www.songbingjia.com/hello") @RequestMapping("/hello")

但如果超过一个属性,就必须写上value属性名称
value属性的值也可以是一个空字符串,此时该方法被映射到如下请求URL:
http://localhost:8080/context
> > 2.method属性
该属性用来指示该方法仅仅处理那些HTTP请求方式
@RequestMapping(value = "https://www.songbingjia.com/hello" method = "RequestMethod.POST")

以上代码表示该方法仅支持POST请求
也可以同时支持多个HTTP请求方式:
@RequestMapping(value = "https://www.songbingjia.com/hello",method = {RequestMethod.POST,RequestMethod.GET})

如果没有指定method属性值,则请求处理方法可以处理任意的HTTP请求方式


    推荐阅读