RequestPart (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.web.bind.annotation

## Annotation Type RequestPart

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

  Annotation that can be used to associate the part of a "multipart/form-data" request with a method argument. Supported method argument types include `MultipartFile` in conjunction with Spring's `MultipartResolver` abstraction, `javax.servlet.http.Part` in conjunction with Servlet 3.0 multipart requests, or otherwise for any other method argument, the content of the part is passed through an `HttpMessageConverter` taking into consideration the 'Content-Type' header of the request part. This is analogous to what @`RequestBody` does to resolve an argument based on the content of a non-multipart regular request.

  Note that @`RequestParam` annotation can also be used to associate the part of a "multipart/form-data" request with a method argument supporting the same method argument types. The main difference is that when the method argument is not a String, @`RequestParam` relies on type conversion via a registered `Converter` or `PropertyEditor` while @`RequestPart` relies on `HttpMessageConverter`s taking into consideration the 'Content-Type' header of the request part. @`RequestParam` is likely to be used with name-value form fields while @`RequestPart` is likely to be used with parts containing more complex content (e.g. JSON, XML).

  Since:
    3.1
  Author:
    Rossen Stoyanchev, Arjen Poutsma
  See Also:
    `RequestParam`, `RequestMappingHandlerAdapter`

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `boolean` | `required` Whether the part is required.
    `String` | `value` The name of the part in the "multipart/form-data" request to bind to.

- - ### Element Detail

    - #### value

          public abstract String value

      The name of the part in the "multipart/form-data" request to bind to.
      Default:
        ""

    - #### required

          public abstract boolean required

      Whether the part is required.

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

      Default:
        true