org.springframework.web.bind.annotation

## Annotation Type MatrixVariable

-     @Target(value=PARAMETER)
       @Retention(value=RUNTIME)
       @Documented
      public @interface MatrixVariable

  Annotation which indicates that a method parameter should be bound to a name-value pair within a path segment. Supported for `RequestMapping` annotated handler methods.

  If the method parameter type is `Map` and a matrix variable name is specified, then the matrix variable value is converted to a `Map` assuming an appropriate conversion strategy is available.

  If the method parameter is `Map<String, String>` or `MultiValueMap<String, String>` and a variable name is not specified, then the map is populated with all matrix variable names and values.

  Since:
    3.2
  Author:
    Rossen Stoyanchev, Sam Brannen

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `String` | `defaultValue` The default value to use as a fallback.
    `String` | `name` The name of the matrix variable.
    `String` | `pathVar` The name of the URI path variable where the matrix variable is located, if necessary for disambiguation (e.g.
    `boolean` | `required` Whether the matrix variable is required.
    `String` | `value` Alias for `name()`.

- - ### Element Detail

    - #### value

          @AliasFor(value="name")
          public abstract String value

      Alias for `name()`.
      Default:
        ""

  - - #### name

          @AliasFor(value="value")
          public abstract String name

      The name of the matrix variable.
      Since:
        4.2
      See Also:
        `value()`
      Default:
        ""

  - - #### pathVar

          public abstract String pathVar

      The name of the URI path variable where the matrix variable is located, if necessary for disambiguation (e.g. a matrix variable with the same name present in more than one path segment).
      Default:
        "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n"

  - - #### required

          public abstract boolean required

      Whether the matrix variable is required.

      Default is `true`, leading to an exception being thrown in case the variable is missing in the request. Switch this to `false` if you prefer a `null` if the variable is missing.

      Alternatively, provide a `defaultValue()`, which implicitly sets this flag to `false`.

      Default:
        true

  - - #### defaultValue

          public abstract String defaultValue

      The default value to use as a fallback.

      Supplying a default value implicitly sets `required()` to `false`.

      Default:
        "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n"