public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodProcessor
HttpEntity
method argument values and also handles
both HttpEntity
and ResponseEntity
return values.
An HttpEntity
return type has a set 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<?>> messageConverters) |
HttpEntityMethodProcessor(List<HttpMessageConverter<?>> messageConverters,
ContentNegotiationManager contentNegotiationManager) |
Modifier and Type | Method and Description |
---|---|
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, writeWithMessageConverters, writeWithMessageConverters
createInputMessage, readWithMessageConverters, readWithMessageConverters
public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> messageConverters)
public HttpEntityMethodProcessor(List<HttpMessageConverter<?>> messageConverters, ContentNegotiationManager contentNegotiationManager)
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
otherwisepublic Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, 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)
and it must have returned true
mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current requestbinderFactory
- a factory for creating WebDataBinder
instancesnull
.IOException
HttpMediaTypeNotSupportedException
public void handleReturnValue(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)
and it must have returned true
mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current requestException
- if the return value handling results in an error