org.springframework.web.method.support
Class HandlerMethodReturnValueHandlerComposite
java.lang.Object
org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite
- All Implemented Interfaces:
- HandlerMethodReturnValueHandler
public class HandlerMethodReturnValueHandlerComposite
- extends java.lang.Object
- implements HandlerMethodReturnValueHandler
Handles method return values by delegating to a list of registered HandlerMethodReturnValueHandler
s.
Previously resolved return types are cached for faster lookups.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
protected final Log logger
returnValueHandlers
private final java.util.List<HandlerMethodReturnValueHandler> returnValueHandlers
returnValueHandlerCache
private final java.util.Map<MethodParameter,HandlerMethodReturnValueHandler> returnValueHandlerCache
HandlerMethodReturnValueHandlerComposite
public HandlerMethodReturnValueHandlerComposite()
getHandlers
public java.util.List<HandlerMethodReturnValueHandler> getHandlers()
- Return a read-only list with the registered handlers, or an empty list.
supportsReturnType
public boolean supportsReturnType(MethodParameter returnType)
- Whether the given method return type is supported by any registered
HandlerMethodReturnValueHandler
.
- Specified by:
supportsReturnType
in interface HandlerMethodReturnValueHandler
- Parameters:
returnType
- the method return type to check
- Returns:
true
if this handler supports the supplied return type;
false
otherwise
handleReturnValue
public void handleReturnValue(java.lang.Object returnValue,
MethodParameter returnType,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest)
throws java.lang.Exception
- Iterate over registered
HandlerMethodReturnValueHandler
s and invoke the one that supports it.
- Specified by:
handleReturnValue
in interface HandlerMethodReturnValueHandler
- 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.IllegalStateException
- if no suitable HandlerMethodReturnValueHandler
is found.
java.lang.Exception
- if the return value handling results in an error
getReturnValueHandler
private HandlerMethodReturnValueHandler getReturnValueHandler(MethodParameter returnType)
- Find a registered
HandlerMethodReturnValueHandler
that supports the given return type.
addHandler
public HandlerMethodReturnValueHandlerComposite addHandler(HandlerMethodReturnValueHandler returnValuehandler)
- Add the given
HandlerMethodReturnValueHandler
.
addHandlers
public HandlerMethodReturnValueHandlerComposite addHandlers(java.util.List<? extends HandlerMethodReturnValueHandler> returnValueHandlers)
- Add the given
HandlerMethodReturnValueHandler
s.