public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodProcessor
HttpEntity
and RequestEntity
method argument values
and also handles HttpEntity
and ResponseEntity
return values.
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.
allSupportedMediaTypes, logger, messageConverters
Constructor and Description |
---|
HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters)
Basic constructor with converters only.
|
HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters,
ContentNegotiationManager manager)
Basic constructor with converters and
ContentNegotiationManager . |
HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters,
ContentNegotiationManager manager,
List<Object> requestResponseBodyAdvice)
Complete constructor for resolving
HttpEntity and handling
ResponseEntity . |
HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters,
List<Object> requestResponseBodyAdvice)
Complete constructor for resolving
HttpEntity method arguments. |
Modifier and Type | Method and Description |
---|---|
protected 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 the
ModelAndViewContainer.setRequestHandled(boolean) flag to true
to indicate the response has been handled directly. |
Object |
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.
|
createOutputMessage, getProducibleMediaTypes, getProducibleMediaTypes, isResourceType, writeWithMessageConverters, writeWithMessageConverters
adaptArgumentIfNecessary, createInputMessage, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicable
public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters)
HttpEntity
. For handling ResponseEntity
consider also
providing a ContentNegotiationManager
.public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters, ContentNegotiationManager manager)
ContentNegotiationManager
.
Suitable for resolving HttpEntity
and handling ResponseEntity
without Request~
or ResponseBodyAdvice
.public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters, List<Object> requestResponseBodyAdvice)
HttpEntity
method arguments.
For handling ResponseEntity
consider also providing a
ContentNegotiationManager
.public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters, @Nullable ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice)
HttpEntity
and handling
ResponseEntity
.public boolean supportsParameter(MethodParameter parameter)
HandlerMethodArgumentResolver
parameter
- the method parameter to checktrue
if this resolver supports the supplied parameter;
false
otherwisepublic boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandler
returnType
- the method return type to checktrue
if this handler supports the supplied return type;
false
otherwise@Nullable public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws IOException, HttpMediaTypeNotSupportedException
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 requestwebRequest
- the current requestbinderFactory
- a factory for creating WebDataBinder
instancesnull
if not resolvableIOException
HttpMediaTypeNotSupportedException
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception
HandlerMethodReturnValueHandler
ModelAndViewContainer.setRequestHandled(boolean)
flag to true
to indicate the response has been handled directly.returnValue
- the value returned from the handler methodreturnType
- the type of the return value. This type must have
previously been passed to HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
which must
have returned true
.mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current requestException
- if the return value handling results in an errorprotected Class<?> getReturnValueType(@Nullable Object returnValue, MethodParameter returnType)
AbstractMessageConverterMethodProcessor
ResponseEntity<T>
).getReturnValueType
in class AbstractMessageConverterMethodProcessor