org.springframework.web.servlet.mvc.method.annotation.support
Class HttpEntityMethodProcessor
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodArgumentResolver
org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor
org.springframework.web.servlet.mvc.method.annotation.support.HttpEntityMethodProcessor
- All Implemented Interfaces:
- HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler
public class HttpEntityMethodProcessor
- extends AbstractMessageConverterMethodProcessor
Resolves 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.
- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(java.util.List<HttpMessageConverter<?>> messageConverters)
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
- 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
public boolean supportsReturnType(MethodParameter returnType)
- 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
public java.lang.Object resolveArgument(MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest,
WebDataBinderFactory binderFactory)
throws java.io.IOException,
HttpMediaTypeNotSupportedException
- Description copied from interface:
HandlerMethodArgumentResolver
- Resolves a method parameter into an argument value from a given request.
A
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.
- Parameters:
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
instances
- Returns:
- the resolved argument value, or
null
.
- Throws:
java.io.IOException
HttpMediaTypeNotSupportedException
getHttpEntityType
private java.lang.Class<?> getHttpEntityType(MethodParameter parameter)
handleReturnValue
public void handleReturnValue(java.lang.Object returnValue,
MethodParameter returnType,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest)
throws java.lang.Exception
- Description copied from interface:
HandlerMethodReturnValueHandler
- 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.
- Parameters:
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 request
- Throws:
java.lang.Exception
- if the return value handling results in an error