Package org.springframework.web.servlet.mvc.method.annotation

# Class ViewNameMethodReturnValueHandler

java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.ViewNameMethodReturnValueHandler

All Implemented Interfaces:
  `org.springframework.web.method.support.HandlerMethodReturnValueHandler`

public class ViewNameMethodReturnValueHandler extends Object implements org.springframework.web.method.support.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, for example, `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

Constructors
Constructor
Description
`ViewNameMethodReturnValueHandler()`

## Method Summary

Modifier and Type
Method
Description
`String[]`
`getRedirectPatterns()`
The configured redirect patterns, if any.
`void`
`handleReturnValue(Object returnValue, org.springframework.core.MethodParameter returnType, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest)`
`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(org.springframework.core.MethodParameter returnType)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ViewNameMethodReturnValueHandler

public ViewNameMethodReturnValueHandler()

## Method Details

### setRedirectPatterns

public void setRedirectPatterns(@Nullable 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:".

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

@Nullable public String[] getRedirectPatterns()
The configured redirect patterns, if any.

### supportsReturnType

public boolean supportsReturnType(org.springframework.core.MethodParameter returnType)

Specified by:
  `supportsReturnType` in interface `org.springframework.web.method.support.HandlerMethodReturnValueHandler`

### handleReturnValue

public void handleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest) throws Exception

Specified by:
  `handleReturnValue` in interface `org.springframework.web.method.support.HandlerMethodReturnValueHandler`
Throws:
  `Exception`

### 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, never `null`
Returns:
  "true" if the given view name is recognized as a redirect view reference; "false" otherwise.