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 typesvoid
andString
interpreting them as view name reference. As of 4.2, it also handles generalCharSequence
types, e.g.StringBuilder
or Groovy'sGString
, as view names.A
null
return value, either due to avoid
return type or as the actual return value is left as-is allowing the configuredRequestToViewNameTranslator
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.- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Constructor Summary
Constructors Constructor Description ViewNameMethodReturnValueHandler()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String[]
getRedirectPatterns()
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 Detail
ViewNameMethodReturnValueHandler
public ViewNameMethodReturnValueHandler()
Method Detail
setRedirectPatterns
public 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:".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
public String[] getRedirectPatterns()
The configured redirect patterns, if any.
supportsReturnType
public boolean supportsReturnType(MethodParameter returnType)
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(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
protected boolean isRedirectViewName(String viewName)
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.