Class ViewNameMethodReturnValueHandler

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

public class ViewNameMethodReturnValueHandler extends Object implements HandlerMethodReturnValueHandler
Handles return values of types void and String interpreting them as view name reference. As of 4.2, it also handles general CharSequence types, for example, StringBuilder or Groovy's GString, as view names.

A null return value, either due to a void return type or as the actual return value is left as-is allowing the configured RequestToViewNameTranslator to select a view name by convention.

A String return value can be interpreted in more than one way 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, Juergen Hoeller
  • Constructor Details

    • ViewNameMethodReturnValueHandler

      public ViewNameMethodReturnValueHandler()
  • Method Details

    • setRedirectPatterns

      public void setRedirectPatterns(String @Nullable ... redirectPatterns)
      Configure one more simple patterns (as described in PatternMatchUtils.simpleMatch(String, String)) to use in order to recognize custom redirect prefixes in addition to "redirect:".

      Note that simply configuring this property will not make a custom redirect prefix work. There must be a custom View that recognizes the prefix as well.

      Since:
      4.1
    • getRedirectPatterns

      public String @Nullable [] getRedirectPatterns()
      The configured redirect patterns, if any.
    • 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(@Nullable 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(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
    • isRedirectViewName

      protected boolean isRedirectViewName(String viewName)
      Whether the given view name is a redirect view reference. The default implementation checks the configured redirect patterns and also if the view name starts with the "redirect:" prefix.
      Parameters:
      viewName - the view name to check, never null
      Returns:
      "true" if the given view name is recognized as a redirect view reference; "false" otherwise.