org.springframework.web.servlet.mvc.method.annotation.support
Class ViewMethodReturnValueHandler

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

public class ViewMethodReturnValueHandler
extends Object
implements HandlerMethodReturnValueHandler

Handles return values that are of type void, String (i.e. logical view name), or View.

A null return value, either due to a void return type or as the actual value returned from a method is left unhandled, leaving it to the configured RequestToViewNameTranslator to resolve the request to an actual view name. By default it is the DefaultRequestToViewNameTranslator.

Since a String return value may handled in different ways, especially in combination with method annotations such as @ModelAttribute and @ResponseBody, this handler should be ordered after return value handlers that support method annotations.

Since:
3.1
Author:
Rossen Stoyanchev

Constructor Summary
ViewMethodReturnValueHandler()
           
 
Method Summary
 void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest)
          Handle the given return value by adding attributes to the model, setting the view (or view name), or by writing to the response.
 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

ViewMethodReturnValueHandler

public ViewMethodReturnValueHandler()
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, setting the view (or view name), or by writing to the response. HandlerMethodReturnValueHandler implementations should also consider whether to set ModelAndViewContainer.setResolveView(boolean), which is set to true by default and therefore needs to be set to false explicitly if view resolution is to be bypassed.

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