org.springframework.web.servlet.mvc.method.annotation
Class ModelAndViewMethodReturnValueHandler

java.lang.Object
  extended by org.springframework.web.servlet.mvc.method.annotation.ModelAndViewMethodReturnValueHandler
All Implemented Interfaces:
HandlerMethodReturnValueHandler

public class ModelAndViewMethodReturnValueHandler
extends Object
implements HandlerMethodReturnValueHandler

Handles return values of type ModelAndView copying view and model information to the ModelAndViewContainer.

If the return value is null, the ModelAndViewContainer.setRequestHandled(boolean) flag is set to false to indicate the request was handled directly.

A ModelAndView 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 Summary
ModelAndViewMethodReturnValueHandler()
           
 
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.
 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

ModelAndViewMethodReturnValueHandler

public ModelAndViewMethodReturnValueHandler()
Method Detail

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