Class HttpEntityMethodProcessor
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor
- All Implemented Interfaces:
HandlerMethodArgumentResolver
,HandlerMethodReturnValueHandler
Resolves
HttpEntity
and RequestEntity
method argument values,
as well as return values of type HttpEntity
, ResponseEntity
,
ErrorResponse
and ProblemDetail
.
An HttpEntity
return type has a specific purpose. Therefore, this
handler should be configured ahead of handlers that support any return
value type annotated with @ModelAttribute
or @ResponseBody
to ensure they don't take over.
- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev, Brian Clozel, Sam Brannen
-
Field Summary
Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
logger, messageConverters
-
Constructor Summary
ConstructorDescriptionHttpEntityMethodProcessor
(List<HttpMessageConverter<?>> converters) Basic constructor with converters only.HttpEntityMethodProcessor
(List<HttpMessageConverter<?>> converters, List<Object> requestResponseBodyAdvice) Complete constructor for resolvingHttpEntity
method arguments.HttpEntityMethodProcessor
(List<HttpMessageConverter<?>> converters, ContentNegotiationManager manager) Basic constructor with converters andContentNegotiationManager
.HttpEntityMethodProcessor
(List<HttpMessageConverter<?>> converters, ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice) Complete constructor for resolvingHttpEntity
and handlingResponseEntity
. -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>
getReturnValueType
(Object returnValue, MethodParameter returnType) Return the type of the value to be written to the response.void
handleReturnValue
(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) Handle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)
flag totrue
to indicate the response has been handled directly.resolveArgument
(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, 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 by this resolver.boolean
supportsReturnType
(MethodParameter returnType) Whether the given method return type is supported by this handler.Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
createOutputMessage, getProducibleMediaTypes, getProducibleMediaTypes, isResourceType, writeWithMessageConverters, writeWithMessageConverters
Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
adaptArgumentIfNecessary, createInputMessage, getSupportedMediaTypes, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicable
-
Constructor Details
-
HttpEntityMethodProcessor
Basic constructor with converters only. Suitable for resolvingHttpEntity
. For handlingResponseEntity
consider also providing aContentNegotiationManager
. -
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters, ContentNegotiationManager manager) Basic constructor with converters andContentNegotiationManager
. Suitable for resolvingHttpEntity
and handlingResponseEntity
withoutRequest~
orResponseBodyAdvice
. -
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters, List<Object> requestResponseBodyAdvice) Complete constructor for resolvingHttpEntity
method arguments. For handlingResponseEntity
consider also providing aContentNegotiationManager
.- Since:
- 4.2
-
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters, @Nullable ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice) Complete constructor for resolvingHttpEntity
and handlingResponseEntity
.
-
-
Method Details
-
supportsParameter
Description copied from interface:HandlerMethodArgumentResolver
Whether the given method parameter is supported by this resolver.- Parameters:
parameter
- the method parameter to check- Returns:
true
if this resolver supports the supplied parameter;false
otherwise
-
supportsReturnType
Description copied from interface:HandlerMethodReturnValueHandler
Whether the given method return type is supported by this handler.- Parameters:
returnType
- the method return type to check- Returns:
true
if this handler supports the supplied return type;false
otherwise
-
resolveArgument
@Nullable public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws IOException, HttpMediaTypeNotSupportedException Description copied from interface:HandlerMethodArgumentResolver
Resolves a method parameter into an argument value from a given request. AModelAndViewContainer
provides access to the model for the request. AWebDataBinderFactory
provides a way to create aWebDataBinder
instance 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 requestwebRequest
- the current requestbinderFactory
- a factory for creatingWebDataBinder
instances- Returns:
- the resolved argument value, or
null
if not resolvable - Throws:
IOException
HttpMediaTypeNotSupportedException
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception Description copied from interface:HandlerMethodReturnValueHandler
Handle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)
flag totrue
to indicate the response has been handled directly.- Parameters:
returnValue
- the value returned from the handler methodreturnType
- the type of the return value. This type must have previously been passed toHandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
which must have returnedtrue
.mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current request- Throws:
Exception
- if the return value handling results in an error
-
getReturnValueType
Description copied from class:AbstractMessageConverterMethodProcessor
Return the type of the value to be written to the response. Typically this is a simple check via getClass on the value but if the value is null, then the return type needs to be examined possibly including generic type determination (e.g.ResponseEntity<T>
).- Overrides:
getReturnValueType
in classAbstractMessageConverterMethodProcessor
-