Class RequestPartMethodArgumentResolver
- java.lang.Object
- org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
- org.springframework.web.servlet.mvc.method.annotation.RequestPartMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
public class RequestPartMethodArgumentResolver extends AbstractMessageConverterMethodArgumentResolver
Resolves the following method arguments:- Annotated with @
RequestPart - Of type
MultipartFilein conjunction with Spring'sMultipartResolverabstraction - Of type
javax.servlet.http.Partin conjunction with Servlet 3.0 multipart requests
When a parameter is annotated with
@RequestPart, the content of the part is passed through anHttpMessageConverterto resolve the method argument with the 'Content-Type' of the request part in mind. This is analogous to what @RequestBodydoes 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, aMethodArgumentNotValidExceptionis raised and a 400 response status code returned ifDefaultHandlerExceptionResolveris configured.- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Brian Clozel, Juergen Hoeller
Field Summary
Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
allSupportedMediaTypes, logger, messageConverters
Constructor Summary
Constructors Constructor Description RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters)Basic constructor with converters only.RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters, List<Object> requestResponseBodyAdvice)Constructor with converters andRequest~andResponseBodyAdvice.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectresolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory)Resolves a method parameter into an argument value from a given request.booleansupportsParameter(MethodParameter parameter)Whether the given method parameter is a multi-part supported.Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
adaptArgumentIfNecessary, createInputMessage, getAdvice, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicable
Constructor Detail
RequestPartMethodArgumentResolver
public RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters)
Basic constructor with converters only.
RequestPartMethodArgumentResolver
public RequestPartMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters, List<Object> requestResponseBodyAdvice)
Constructor with converters andRequest~andResponseBodyAdvice.
Method Detail
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
Whether the given method parameter is a multi-part supported. Supports the following:- annotated with
@RequestPart - of type
MultipartFileunless annotated with@RequestParam - of type
javax.servlet.http.Partunless annotated with@RequestParam
- Parameters:
parameter- the method parameter to check- Returns:
trueif this resolver supports the supplied parameter;falseotherwise
- annotated with
resolveArgument
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception
Description copied from interface:HandlerMethodArgumentResolverResolves a method parameter into an argument value from a given request. AModelAndViewContainerprovides access to the model for the request. AWebDataBinderFactoryprovides a way to create aWebDataBinderinstance when needed for data binding and type conversion purposes.- Parameters:
parameter- the method parameter to resolve. This parameter must have previously been passed toHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)which must have returnedtrue.mavContainer- the ModelAndViewContainer for the current requestrequest- the current requestbinderFactory- a factory for creatingWebDataBinderinstances- Returns:
- the resolved argument value, or
null - Throws:
Exception- in case of errors with the preparation of argument values