public class ModelAndViewMethodReturnValueHandler extends java.lang.Object implements HandlerMethodReturnValueHandler
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.
| Constructor and Description |
|---|
ModelAndViewMethodReturnValueHandler() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String[] |
getRedirectPatterns()
Return the configured redirect patterns, if any.
|
void |
handleReturnValue(java.lang.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. |
protected boolean |
isRedirectViewName(java.lang.String viewName)
Whether the given view name is a redirect view reference.
|
void |
setRedirectPatterns(java.lang.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:". |
boolean |
supportsReturnType(MethodParameter returnType)
Whether the given method return type is
supported by this handler.
|
public ModelAndViewMethodReturnValueHandler()
public void setRedirectPatterns(java.lang.String... redirectPatterns)
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.
public java.lang.String[] getRedirectPatterns()
public boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandlersupportsReturnType in interface HandlerMethodReturnValueHandlerreturnType - the method return type to checktrue if this handler supports the supplied return type;
false otherwisepublic void handleReturnValue(java.lang.Object returnValue,
MethodParameter returnType,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest)
throws java.lang.Exception
HandlerMethodReturnValueHandlerModelAndViewContainer.setRequestHandled(boolean) flag to true
to indicate the response has been handled directly.handleReturnValue in interface HandlerMethodReturnValueHandlerreturnValue - the value returned from the handler methodreturnType - the type of the return value. This type must have
previously been passed to HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter) which must
have returned true.mavContainer - the ModelAndViewContainer for the current requestwebRequest - the current requestjava.lang.Exception - if the return value handling results in an errorprotected boolean isRedirectViewName(java.lang.String viewName)
viewName - the view name to check, never null