org.springframework.web.method.annotation
Class MapMethodProcessor

java.lang.Object
  extended by org.springframework.web.method.annotation.MapMethodProcessor
All Implemented Interfaces:
HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler

public class MapMethodProcessor
extends Object
implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler

Resolves Map method arguments and handles Map return values.

A Map return value can be interpreted in more than one ways depending on the presence of annotations like @ModelAttribute or @ResponseBody. Therefore this handler should be configured after the handlers that support these annotations.

Since:
3.1
Author:
Rossen Stoyanchev

Constructor Summary
MapMethodProcessor()
           
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MapMethodProcessor

public MapMethodProcessor()
Method Detail

supportsParameter

public boolean supportsParameter(MethodParameter parameter)
Description copied from interface: HandlerMethodArgumentResolver
Whether the given method parameter is supported by this resolver.

Specified by:
supportsParameter in interface HandlerMethodArgumentResolver
Parameters:
parameter - the method parameter to check
Returns:
true if this resolver supports the supplied parameter; false otherwise

resolveArgument

public Object resolveArgument(MethodParameter parameter,
                              ModelAndViewContainer mavContainer,
                              NativeWebRequest webRequest,
                              WebDataBinderFactory binderFactory)
                       throws Exception
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.

Specified by:
resolveArgument in interface HandlerMethodArgumentResolver
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 request
webRequest - the current request
binderFactory - a factory for creating WebDataBinder instances
Returns:
the resolved argument value, or null.
Throws:
Exception - in case of errors with the preparation of argument values

supportsReturnType

public boolean supportsReturnType(MethodParameter returnType)
Description copied from interface: HandlerMethodReturnValueHandler
Whether the given method return type is supported by this handler.

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(Object returnValue,
                              MethodParameter returnType,
                              ModelAndViewContainer mavContainer,
                              NativeWebRequest webRequest)
                       throws 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.

Specified by:
handleReturnValue in 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) and it 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