public class ViewNameMethodReturnValueHandler extends java.lang.Object implements HandlerMethodReturnValueHandler
void and String interpreting them
as view name reference. As of 4.2, it also handles general CharSequence
types, e.g. 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 ways depending
on the presence of annotations like @ModelAttribute or
@ResponseBody. Therefore this handler should be configured after
the handlers that support these annotations.
| Constructor and Description |
|---|
ViewNameMethodReturnValueHandler() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String[] |
getRedirectPatterns()
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 void setRedirectPatterns(@Nullable 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.
@Nullable 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(@Nullable 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