Package org.springframework.web.bind.annotation

# Annotation Interface RequestPart

@Target(PARAMETER) @Retention(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, `jakarta.servlet.http.Part` in conjunction with Servlet 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 or raw `MultipartFile` / `Part`, `@RequestParam` relies on type conversion via a registered `Converter` or `PropertyEditor` while `RequestPart` relies on `HttpMessageConverters` 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 for example, JSON, XML).

Since:
  3.1
Author:
  Rossen Stoyanchev, Arjen Poutsma, Sam Brannen
See Also:
  - `RequestParam`
  - `org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter`

## Optional Element Summary

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

## Element Details

### value

@AliasFor("name") String value
Alias for `name()`.

Default:
  ""

### name

@AliasFor("value") String name
The name of the part in the `"multipart/form-data"` request to bind to.

Since:
  4.2

Default:
  ""

### required

boolean required
Whether the part is required.

Defaults to `true`, leading to an exception being thrown if the part is missing in the request. Switch this to `false` if you prefer a `null` value if the part is not present in the request.

Default:
  true