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
`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