Class ModelAndViewMethodReturnValueHandler
java.lang.Object
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
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionString[]Return the configured redirect patterns, if any.voidhandleReturnValue(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 theModelAndViewContainer.setRequestHandled(boolean)flag totrueto indicate the response has been handled directly.protected booleanisRedirectViewName(String viewName) Whether the given view name is a redirect view reference.voidsetRedirectPatterns(String... redirectPatterns) Configure one more simple patterns (as described inPatternMatchUtils.simpleMatch(java.lang.String, java.lang.String)) to use in order to recognize custom redirect prefixes in addition to "redirect:".booleansupportsReturnType(MethodParameter returnType) Whether the given method return type is supported by this handler.
-
Constructor Details
-
ModelAndViewMethodReturnValueHandler
public ModelAndViewMethodReturnValueHandler()
-
-
Method Details
-
setRedirectPatterns
Configure one more simple patterns (as described inPatternMatchUtils.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
Viewthat recognizes the prefix as well.- Since:
- 4.1
-
getRedirectPatterns
Return the configured redirect patterns, if any.- Since:
- 4.1
-
supportsReturnType
Description copied from interface:HandlerMethodReturnValueHandlerWhether the given method return type is supported by this handler.- Specified by:
supportsReturnTypein interfaceHandlerMethodReturnValueHandler- Parameters:
returnType- the method return type to check- Returns:
trueif this handler supports the supplied return type;falseotherwise
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception Description copied from interface:HandlerMethodReturnValueHandlerHandle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)flag totrueto indicate the response has been handled directly.- Specified by:
handleReturnValuein interfaceHandlerMethodReturnValueHandler- Parameters:
returnValue- the value returned from the handler methodreturnType- the type of the return value. This type must have previously been passed toHandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)which must have returnedtrue.mavContainer- the ModelAndViewContainer for the current requestwebRequest- the current request- Throws:
Exception- if the return value handling results in an error
-
isRedirectViewName
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, nevernull- Returns:
- "true" if the given view name is recognized as a redirect view reference; "false" otherwise.
-