public class ModelAndViewMethodReturnValueHandler extends 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 |
---|---|
String[] |
getRedirectPatterns()
Return the configured redirect patterns, if any.
|
void |
handleReturnValue(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(String viewName)
Whether the given view name is a redirect view reference.
|
void |
setRedirectPatterns(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(@Nullable 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.
@Nullable public String[] getRedirectPatterns()
public boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandler
supportsReturnType
in interface HandlerMethodReturnValueHandler
returnType
- the method return type to checktrue
if this handler supports the supplied return type;
false
otherwisepublic void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception
HandlerMethodReturnValueHandler
ModelAndViewContainer.setRequestHandled(boolean)
flag to true
to indicate the response has been handled directly.handleReturnValue
in interface HandlerMethodReturnValueHandler
returnValue
- 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 requestException
- if the return value handling results in an errorprotected boolean isRedirectViewName(String viewName)
viewName
- the view name to check, never null