Class ViewNameMethodReturnValueHandler
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.ViewNameMethodReturnValueHandler
- All Implemented Interfaces:
HandlerMethodReturnValueHandler
public class ViewNameMethodReturnValueHandler
extends Object
implements HandlerMethodReturnValueHandler
Handles return values of types
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 way depending on
the presence of annotations like @ModelAttribute
or @ResponseBody
.
Therefore, this handler should be configured after the handlers that support these
annotations.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionString[]
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 theModelAndViewContainer.setRequestHandled(boolean)
flag totrue
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 inPatternMatchUtils.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.
-
Constructor Details
-
ViewNameMethodReturnValueHandler
public ViewNameMethodReturnValueHandler()
-
-
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 View that recognizes the prefix as well.
- Since:
- 4.1
-
getRedirectPatterns
The configured redirect patterns, if any. -
supportsReturnType
Description copied from interface:HandlerMethodReturnValueHandler
Whether the given method return type is supported by this handler.- Specified by:
supportsReturnType
in interfaceHandlerMethodReturnValueHandler
- Parameters:
returnType
- the method return type to check- Returns:
true
if this handler supports the supplied return type;false
otherwise
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception Description copied from interface:HandlerMethodReturnValueHandler
Handle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)
flag totrue
to indicate the response has been handled directly.- Specified by:
handleReturnValue
in 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.
-