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 or the name of the part is not specified, it is derived from the name of the method argument.
Automatic validation may be applied if the argument is annotated with
@javax.validation.Valid. In case of validation failure, a MethodArgumentNotValidException
is raised and a 400 response status code returned if
DefaultHandlerExceptionResolver is configured.
allSupportedMediaTypes, logger, messageConverters| Constructor and Description |
|---|
RequestPartMethodArgumentResolver(java.util.List<HttpMessageConverter<?>> messageConverters)
Basic constructor with converters only.
|
RequestPartMethodArgumentResolver(java.util.List<HttpMessageConverter<?>> messageConverters,
java.util.List<java.lang.Object> requestResponseBodyAdvice)
Constructor with converters and
Request~ and
ResponseBodyAdvice. |
| Modifier and Type | Method and Description |
|---|---|
java.lang.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)
Supports the following:
annotated with
@RequestPart
of type MultipartFile unless annotated with @RequestParam
of type javax.servlet.http.Part unless annotated with @RequestParam
|
adaptArgumentIfNecessary, createInputMessage, getAdvice, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicablepublic RequestPartMethodArgumentResolver(java.util.List<HttpMessageConverter<?>> messageConverters)
public RequestPartMethodArgumentResolver(java.util.List<HttpMessageConverter<?>> messageConverters, java.util.List<java.lang.Object> requestResponseBodyAdvice)
Request~ 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 otherwisepublic java.lang.Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) throws java.lang.Exception
HandlerMethodArgumentResolverModelAndViewContainer 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 instancesnulljava.lang.Exception - in case of errors with the preparation of argument values