public class RequestPartMethodArgumentResolver extends AbstractMessageConverterMethodArgumentResolver
RequestPart
MultipartFile
in conjunction with Spring's MultipartResolver
abstraction
javax.servlet.http.Part
in conjunction with Servlet 3.0 multipart requests
When a parameter is annotated with @RequestPart
, the content of the part is
passed through an HttpMessageConverter
to resolve the method argument with the
'Content-Type' of the request part in mind. This is analogous to what @RequestBody
does to resolve an argument based on the content of a regular request.
When a parameter is not annotated with @RequestPart
or the name of
the part is not specified, the request part's name is derived from the name of
the method argument.
Automatic validation may be applied if the argument is annotated with any
annotations that trigger validation. In case of validation failure, a
MethodArgumentNotValidException
is raised and a 400 response status code returned if the
DefaultHandlerExceptionResolver
is configured.
logger, messageConverters
Constructor and Description |
---|
RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters)
Basic constructor with converters only.
|
RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters,
List<Object> requestResponseBodyAdvice)
Constructor with converters and
RequestBodyAdvice and
ResponseBodyAdvice . |
Modifier and Type | Method and Description |
---|---|
Object |
resolveArgument(MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest request,
WebDataBinderFactory binderFactory)
Resolves a method parameter into an argument value from a given request.
|
boolean |
supportsParameter(MethodParameter parameter)
Whether the given method parameter is
supported as multi-part.
|
adaptArgumentIfNecessary, createInputMessage, getSupportedMediaTypes, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicable
public RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters)
public RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters, List<Object> requestResponseBodyAdvice)
RequestBodyAdvice
and
ResponseBodyAdvice
.public boolean supportsParameter(MethodParameter parameter)
@RequestPart
MultipartFile
unless annotated with @RequestParam
javax.servlet.http.Part
unless annotated with
@RequestParam
parameter
- the method parameter to checktrue
if this resolver supports the supplied parameter;
false
otherwise@Nullable public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest request, @Nullable WebDataBinderFactory binderFactory) throws Exception
HandlerMethodArgumentResolver
ModelAndViewContainer
provides access to the model for the
request. A WebDataBinderFactory
provides a way to create
a WebDataBinder
instance when needed for data binding and
type conversion purposes.parameter
- the method parameter to resolve. This parameter must
have previously been passed to HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
which must
have returned true
.mavContainer
- the ModelAndViewContainer for the current requestrequest
- the current requestbinderFactory
- a factory for creating WebDataBinder
instancesnull
if not resolvableException
- in case of errors with the preparation of argument values