Class ModelMethodProcessor
java.lang.Object
org.springframework.web.method.annotation.ModelMethodProcessor
- All Implemented Interfaces:
- HandlerMethodArgumentResolver,- HandlerMethodReturnValueHandler
public class ModelMethodProcessor
extends Object
implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler
Resolves 
Model arguments and handles Model return values.
 A Model 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:
- Rossen Stoyanchev
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidhandleReturnValue(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 theModelAndViewContainer.setRequestHandled(boolean)flag totrueto indicate the response has been handled directly.resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) Resolves a method parameter into an argument value from a given request.booleansupportsParameter(MethodParameter parameter) Whether the given method parameter is supported by this resolver.booleansupportsReturnType(MethodParameter returnType) Whether the given method return type is supported by this handler.
- 
Constructor Details- 
ModelMethodProcessorpublic ModelMethodProcessor()
 
- 
- 
Method Details- 
supportsParameterDescription copied from interface:HandlerMethodArgumentResolverWhether the given method parameter is supported by this resolver.- Specified by:
- supportsParameterin interface- HandlerMethodArgumentResolver
- Parameters:
- parameter- the method parameter to check
- Returns:
- trueif this resolver supports the supplied parameter;- falseotherwise
 
- 
resolveArgument@Nullable public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception Description copied from interface:HandlerMethodArgumentResolverResolves a method parameter into an argument value from a given request. AModelAndViewContainerprovides access to the model for the request. AWebDataBinderFactoryprovides a way to create aWebDataBinderinstance when needed for data binding and type conversion purposes.- Specified by:
- resolveArgumentin interface- HandlerMethodArgumentResolver
- Parameters:
- 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 request
- webRequest- the current request
- binderFactory- a factory for creating- WebDataBinderinstances
- Returns:
- the resolved argument value, or nullif not resolvable
- Throws:
- Exception- in case of errors with the preparation of argument values
 
- 
supportsReturnTypeDescription copied from interface:HandlerMethodReturnValueHandlerWhether the given method return type is supported by this handler.- Specified by:
- supportsReturnTypein interface- HandlerMethodReturnValueHandler
- Parameters:
- returnType- the method return type to check
- Returns:
- trueif this handler supports the supplied return type;- falseotherwise
 
- 
handleReturnValuepublic void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception Description copied from interface:HandlerMethodReturnValueHandlerHandle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)flag totrueto indicate the response has been handled directly.- Specified by:
- handleReturnValuein interface- HandlerMethodReturnValueHandler
- Parameters:
- returnValue- the value returned from the handler method
- returnType- 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 request
- webRequest- the current request
- Throws:
- Exception- if the return value handling results in an error
 
 
-