Annotation Interface RequestMapping


Annotation for mapping web requests onto methods in request-handling classes with flexible method signatures.

Note: This annotation can be used both at the class and at the method level. In most cases, at the method level applications will prefer to use one of the HTTP method specific variants @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, or @PatchMapping.

NOTE: When using controller interfaces (e.g. for AOP proxying), make sure to consistently put all your mapping annotations - such as @RequestMapping and @SessionAttributes - on the controller interface rather than on the implementation class.

从以下版本开始:
2018-08-23 10:18
作者:
Harry Yang
  • 可选元素概要

    可选元素
    修饰符和类型
    可选元素
    说明
    boolean
    Combine this condition with another such as conditions from a type-level and method-level @RequestMapping annotation.
    Narrows the primary mapping by media types that can be consumed by the mapped handler.
    The headers of the mapped request, narrowing the primary mapping.
    The HTTP request methods to map to, narrowing the primary mapping: GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.
    Assign a name to this mapping.
    The parameters of the mapped request, narrowing the primary mapping.
    The path mapping URIs (e.g.
    Narrows the primary mapping by media types that can be produced by the mapped handler.
    The primary mapping expressed by this annotation.
  • 元素详细资料

    • name

      String name
      Assign a name to this mapping.

      Supported at the type level as well as at the method level! When used on both levels, a combined name is derived by concatenation with "#" as separator.

      从以下版本开始:
      4.0
      另请参阅:
      默认值:
      ""
    • value

      @AliasFor("path") String[] value
      The primary mapping expressed by this annotation.

      This is an alias for path(). For example, @RequestMapping("/foo") is equivalent to @RequestMapping(path="/foo").

      Supported at the type level as well as at the method level! When used at the type level, all method-level mappings inherit this primary mapping, narrowing it for a specific handler method.

      NOTE: A handler method that is not mapped to any path explicitly is effectively mapped to an empty path.

      默认值:
      {}
    • path

      @AliasFor("value") String[] path
      The path mapping URIs (e.g. "/profile").

      Ant-style path patterns are also supported (e.g. "/profile/**"). At the method level, relative paths (e.g. "edit") are supported within the primary mapping expressed at the type level. Path mapping URIs may contain placeholders (e.g. "/${profile_path}").

      Supported at the type level as well as at the method level! When used at the type level, all method-level mappings inherit this primary mapping, narrowing it for a specific handler method.

      NOTE: A handler method that is not mapped to any path explicitly is effectively mapped to an empty path.

      从以下版本开始:
      4.0
      默认值:
      {}
    • combine

      boolean combine
      Combine this condition with another such as conditions from a type-level and method-level @RequestMapping annotation.
      从以下版本开始:
      3.0
      默认值:
      true
    • method

      HttpMethod[] method
      The HTTP request methods to map to, narrowing the primary mapping: GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.

      Supported at the type level as well as at the method level! When used at the type level, all method-level mappings inherit this HTTP method restriction.

      默认值:
      {}
    • consumes

      String[] consumes
      Narrows the primary mapping by media types that can be consumed by the mapped handler. Consists of one or more media types one of which must match to the request Content-Type header. Examples:
       consumes = "text/plain"
       consumes = {"text/plain", "application/*"}
       consumes = MediaType.TEXT_PLAIN_VALUE
       

      If a declared media type contains a parameter, and if the "content-type" from the request also has that parameter, then the parameter values must match. Otherwise, if the media type from the request "content-type" does not contain the parameter, then the parameter is ignored for matching purposes.

      Expressions can be negated by using the "!" operator, as in "!text/plain", which matches all requests with a Content-Type other than "text/plain".

      Supported at the type level as well as at the method level! If specified at both levels, the method level consumes condition overrides the type level condition.

      从以下版本开始:
      3.0
      另请参阅:
      默认值:
      {}
    • params

      String[] params
      The parameters of the mapped request, narrowing the primary mapping.

      Same format for any environment: a sequence of "myParam=myValue" style expressions, with a request only mapped if each such parameter is found to have the given value. Expressions can be negated by using the "!=" operator, as in "myParam!=myValue". "myParam" style expressions are also supported, with such parameters having to be present in the request (allowed to have any value). Finally, "!myParam" style expressions indicate that the specified parameter is not supposed to be present in the request.

      Supported at the type level as well as at the method level! When used at the type level, all method-level mappings inherit this parameter restriction.

      从以下版本开始:
      3.0
      默认值:
      {}
    • produces

      String[] produces
      Narrows the primary mapping by media types that can be produced by the mapped handler.

      Consists of one or more media types one of which must be chosen via content negotiation against the "acceptable" media types of the request. Typically those are extracted from the "Accept" header but may be derived from query parameters, or other.

       Examples:
       produces = "text/plain"
       produces = {"text/plain", "application/*"}
       produces = MediaType.TEXT_PLAIN_VALUE
       produces = "text/plain;charset=UTF-8"
       

      If a declared media type contains a parameter (e.g. "charset=UTF-8", "type=feed", "type=entry") and if a compatible media type from the request has that parameter too, then the parameter values must match. Otherwise if the media type from the request does not contain the parameter, it is assumed the client accepts any value.

      Expressions can be negated by using the "!" operator, as in "!text/plain", which matches all requests with a Accept other than "text/plain".

      Supported at the type level as well as at the method level! If specified at both levels, the method level produces condition overrides the type level condition.

      从以下版本开始:
      3.0
      默认值:
      {}
    • headers

      String[] headers
      The headers of the mapped request, narrowing the primary mapping.

      Same format for any environment: a sequence of "My-Header=myValue" style expressions, with a request only mapped if each such header is found to have the given value. Expressions can be negated by using the "!=" operator, as in "My-Header!=myValue". "My-Header" style expressions are also supported, with such headers having to be present in the request (allowed to have any value). Finally, "!My-Header" style expressions indicate that the specified header is not supposed to be present in the request.

      Also supports media type wildcards (*), for headers such as Accept and Content-Type. For instance,

       @RequestMapping(value = "/something", headers = "content-type=text/*")
       
      will match requests with a Content-Type of "text/html", "text/plain", etc.

      Supported at the type level as well as at the method level! When used at the type level, all method-level mappings inherit this header restriction.

      从以下版本开始:
      4.0
      另请参阅:
      默认值:
      {}