Package org.springframework.web.servlet.view

# Class DefaultRequestToViewNameTranslator

java.lang.Object
org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator

All Implemented Interfaces:
  `RequestToViewNameTranslator`

public class DefaultRequestToViewNameTranslator extends Object implements RequestToViewNameTranslator
`RequestToViewNameTranslator` that simply transforms the URI of the incoming request into a view name.

Can be explicitly defined as the `viewNameTranslator` bean in a `DispatcherServlet` context. Otherwise, a plain default instance will be used.

The default transformation simply strips leading and trailing slashes as well as the file extension of the URI, and returns the result as the view name with the configured `prefix` and a `suffix` added as appropriate.

The stripping of the leading slash and file extension can be disabled using the `stripLeadingSlash` and `stripExtension` properties, respectively.

Find below some examples of request to view name translation.

- `http://localhost:8080/gamecast/display.html` » `display`
- `http://localhost:8080/gamecast/displayShoppingCart.html` » `displayShoppingCart`
- `http://localhost:8080/gamecast/admin/index.html` » `admin/index`

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller, Sebastien Deleuze
See Also:
  - `RequestToViewNameTranslator`
  - `ViewResolver`

## Constructor Summary

Constructors
Constructor
Description
`DefaultRequestToViewNameTranslator()`

## Method Summary

Modifier and Type
Method
Description
`String`
`getViewName(HttpServletRequest request)`
Translates the request URI of the incoming `HttpServletRequest` into the view name based on the configured parameters.
`void`
`setPrefix(String prefix)`
Set the prefix to prepend to generated view names.
`void`
`setSeparator(String separator)`
Set the value that will replace '`/`' as the separator in the view name.
`void`
`setStripExtension(boolean stripExtension)`
Set whether file extensions should be stripped from the URI when generating the view name.
`void`
`setStripLeadingSlash(boolean stripLeadingSlash)`
Set whether leading slashes should be stripped from the URI when generating the view name.
`void`
`setStripTrailingSlash(boolean stripTrailingSlash)`
Set whether trailing slashes should be stripped from the URI when generating the view name.
`void`
`setSuffix(String suffix)`
Set the suffix to append to generated view names.
`protected String`
`transformPath(String lookupPath)`
Transform the request URI (in the context of the webapp) stripping slashes and extensions, and replacing the separator as required.

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

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

## Constructor Details

### DefaultRequestToViewNameTranslator

public DefaultRequestToViewNameTranslator()

## Method Details

### setPrefix

public void setPrefix(@Nullable String prefix)
Set the prefix to prepend to generated view names.

Parameters:
  `prefix` - the prefix to prepend to generated view names

### setSuffix

public void setSuffix(@Nullable String suffix)
Set the suffix to append to generated view names.

Parameters:
  `suffix` - the suffix to append to generated view names

### setSeparator

public void setSeparator(String separator)
Set the value that will replace '`/`' as the separator in the view name. The default behavior simply leaves '`/`' as the separator.

### setStripLeadingSlash

public void setStripLeadingSlash(boolean stripLeadingSlash)
Set whether leading slashes should be stripped from the URI when generating the view name. Default is "true".

### setStripTrailingSlash

public void setStripTrailingSlash(boolean stripTrailingSlash)
Set whether trailing slashes should be stripped from the URI when generating the view name. Default is "true".

### setStripExtension

public void setStripExtension(boolean stripExtension)
Set whether file extensions should be stripped from the URI when generating the view name. Default is "true".

### getViewName

public String getViewName(HttpServletRequest request)
Translates the request URI of the incoming `HttpServletRequest` into the view name based on the configured parameters.

Specified by:
  `getViewName` in interface `RequestToViewNameTranslator`
Parameters:
  `request` - the incoming `HttpServletRequest` providing the context from which a view name is to be resolved
Returns:
  the view name, or `null` if no default found
Throws:
  `IllegalArgumentException` - if neither a parsed RequestPath, nor a String lookupPath have been resolved and cached as a request attribute.
  `org.springframework.web.server.ResponseStatusException` - with a 400 error code if the path contains a "redirect:" or a "forward:" prefix
See Also:
  - `ServletRequestPathUtils.getCachedPath(ServletRequest)`
  - `transformPath(java.lang.String)`

### transformPath

protected String transformPath(String lookupPath)
Transform the request URI (in the context of the webapp) stripping slashes and extensions, and replacing the separator as required.

Parameters:
  `lookupPath` - the lookup path for the current request, as determined by the UrlPathHelper
Returns:
  the transformed path, with slashes and extensions stripped if desired