@RequestMapping注解

Posted ZZUGPY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@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 = "/user")
public class UserController{
  @RequestMapping(value = "/register")
  public String register(){
        return "register";
  }
  @RequestMapping(value = "/login")
  public String login(){
        return "login"; 
    }              
}

请求URL  :  http://localhost:8080/user/register

      http://localhost:8080/user/login

  >>1.value属性

@RequestMapping(value = "/hello")
public ModelAndView hello(){
    return ...;
}

  该实例使用@RequestMapping注释的value属性将URL映射到方法上,在这个例子中,将hello映射到hello方法上,使用如下URL访问应用时将由hello方法进行处理:

  http://localhost:8080/context/hello

  由于value属性是@RequestMapping注释的默认属性,因此,如果只有唯一的属性,则可以省略属性名

@RequestMapping(value = "/hello")
@RequestMapping("/hello")

  但如果超过一个属性,就必须写上value属性名称

  value属性的值也可以是一个空字符串,此时该方法被映射到如下请求URL:

  http://localhost:8080/context

  >>2.method属性

  该属性用来指示该方法仅仅处理那些HTTP请求方式

@RequestMapping(value = "/hello" method = "RequestMethod.POST")

  以上代码表示该方法仅支持POST请求

  也可以同时支持多个HTTP请求方式:

@RequestMapping(value = "/hello",method = {RequestMethod.POST,RequestMethod.GET})

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

  

以上是关于@RequestMapping注解的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记——@RequestMapping注解位置注解属性;@RequestMapping支持Ant风格的路径

Spring MVC 基础注解之@RequestMapping@Controller

@RequestMapping与@RequestParam注解

Spring MVC@RequestMapping注解属性

springmvc之@Controller@RequestMapping等注解解说

关于SprintMVC中RequestMapping注解value值重复问题