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(java.util.List<HttpMessageConverter<?>> converters)
Basic constructor with converters only.
|
HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters,
ContentNegotiationManager manager)
Basic constructor with converters and
ContentNegotiationManager. |
HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters,
ContentNegotiationManager manager,
java.util.List<java.lang.Object> requestResponseBodyAdvice)
Complete constructor for resolving
HttpEntity and handling
ResponseEntity. |
HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters,
java.util.List<java.lang.Object> requestResponseBodyAdvice)
Complete constructor for resolving
HttpEntity method arguments. |
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.Class<?> |
getReturnValueType(java.lang.Object returnValue,
MethodParameter returnType)
Return the type of the value to be written to the response.
|
void |
handleReturnValue(java.lang.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. |
java.lang.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, writeWithMessageConverters, writeWithMessageConvertersadaptArgumentIfNecessary, createInputMessage, getAdvice, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicablepublic HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters)
HttpEntity. For handling ResponseEntity consider also
providing a ContentNegotiationManager.public HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters, ContentNegotiationManager manager)
ContentNegotiationManager.
Suitable for resolving HttpEntity and handling ResponseEntity
without Request~ or ResponseBodyAdvice.public HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters, java.util.List<java.lang.Object> requestResponseBodyAdvice)
HttpEntity method arguments.
For handling ResponseEntity consider also providing a
ContentNegotiationManager.public HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> converters, ContentNegotiationManager manager, java.util.List<java.lang.Object> requestResponseBodyAdvice)
HttpEntity and handling
ResponseEntity.public boolean supportsParameter(MethodParameter parameter)
HandlerMethodArgumentResolverparameter - the method parameter to checktrue if this resolver supports the supplied parameter;
false otherwisepublic boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandlerreturnType - the method return type to checktrue if this handler supports the supplied return type;
false otherwisepublic java.lang.Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws java.io.IOException, HttpMediaTypeNotSupportedException
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 requestwebRequest - the current requestbinderFactory - a factory for creating WebDataBinder instancesnulljava.io.IOExceptionHttpMediaTypeNotSupportedExceptionpublic void handleReturnValue(java.lang.Object returnValue,
MethodParameter returnType,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest)
throws java.lang.Exception
HandlerMethodReturnValueHandlerModelAndViewContainer.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 requestjava.lang.Exception - if the return value handling results in an errorprotected java.lang.Class<?> getReturnValueType(java.lang.Object returnValue,
MethodParameter returnType)
AbstractMessageConverterMethodProcessorResponseEntity<T>).getReturnValueType in class AbstractMessageConverterMethodProcessor