Class ModelAndViewMethodReturnValueHandler

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

public class ModelAndViewMethodReturnValueHandler extends Object implements org.springframework.web.method.support.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 true 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 Details

    • ModelAndViewMethodReturnValueHandler

      public ModelAndViewMethodReturnValueHandler()
  • Method Details

    • setRedirectPatterns

      public void setRedirectPatterns(@Nullable String... redirectPatterns)
      Configure one more simple patterns (as described in PatternMatchUtils.simpleMatch(java.lang.String, java.lang.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

      @Nullable public String[] getRedirectPatterns()
      Return the configured redirect patterns, if any.
      Since:
      4.1
    • supportsReturnType

      public boolean supportsReturnType(org.springframework.core.MethodParameter returnType)
      Specified by:
      supportsReturnType in interface org.springframework.web.method.support.HandlerMethodReturnValueHandler
    • handleReturnValue

      public void handleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest) throws Exception
      Specified by:
      handleReturnValue in interface org.springframework.web.method.support.HandlerMethodReturnValueHandler
      Throws:
      Exception
    • 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.