The Spring Framework

org.springframework.web.servlet.view
Class DefaultRequestToViewNameTranslator

java.lang.Object
  extended by org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator
All Implemented Interfaces:
RequestToViewNameTranslator

public class DefaultRequestToViewNameTranslator
extends Object
implements RequestToViewNameTranslator

Simply transforms the URI of the incoming request into the view name.

Can be explicitly defined as the "viewNameTranslator" bean in a DispatcherServlet context; else, a plain default instance will be used.

The default transformation simply strips the leading slash and file extension of the URI and returns the result as the view name with the configured "prefix" and and "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
See Also:
RequestToViewNameTranslator, ViewResolver

Constructor Summary
DefaultRequestToViewNameTranslator()
           
 
Method Summary
 String getViewName(HttpServletRequest request)
          Translates the request URI of the incoming HttpServletRequest to the view name based on the configured parameters.
 void setAlwaysUseFullPath(boolean alwaysUseFullPath)
          Set if URL lookup should always use the full path within the current servlet context.
 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 or not file extensions should be stripped from the URI when generating the view name.
 void setStripLeadingSlash(boolean stripLeadingSlash)
          Set whether or not leading 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.
 void setUrlDecode(boolean urlDecode)
          Set if the context path and request URI should be URL-decoded.
 void setUrlPathHelper(UrlPathHelper urlPathHelper)
          Set the UrlPathHelper to use for the resolution of lookup paths.
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 Detail

DefaultRequestToViewNameTranslator

public DefaultRequestToViewNameTranslator()
Method Detail

setPrefix

public void setPrefix(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(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.

Parameters:
separator - the desired separator value

setStripLeadingSlash

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

Parameters:
stripLeadingSlash - true if leading slashes are to be stripped

setStripExtension

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

Parameters:
stripExtension - true if file extensions should be stripped

setAlwaysUseFullPath

public void setAlwaysUseFullPath(boolean alwaysUseFullPath)
Set if URL lookup should always use the full path within the current servlet context. Else, the path within the current servlet mapping is used if applicable (i.e. in the case of a ".../*" servlet mapping in web.xml). Default is "false".

Parameters:
alwaysUseFullPath - true if URL lookup should always use the full path
See Also:
UrlPathHelper.setAlwaysUseFullPath(boolean)

setUrlDecode

public void setUrlDecode(boolean urlDecode)
Set if the context path and request URI should be URL-decoded. Both are returned undecoded by the Servlet API, in contrast to the servlet path.

Uses either the request encoding or the default encoding according to the Servlet spec (ISO-8859-1).

Note: Setting this to "true" requires JDK 1.4 if the encoding differs from the VM's platform default encoding, as JDK 1.3's URLDecoder class does not offer a way to specify the encoding.

Parameters:
urlDecode - true if the context path and request URI should be URL-decoded
See Also:
UrlPathHelper.setUrlDecode(boolean)

setUrlPathHelper

public void setUrlPathHelper(UrlPathHelper urlPathHelper)
Set the UrlPathHelper to use for the resolution of lookup paths.

Use this to override the default UrlPathHelper with a custom subclass, or to share common UrlPathHelper settings across multiple web components.

Parameters:
urlPathHelper - the desired helper
Throws:
IllegalArgumentException - if the supplied UrlPathHelper is null

getViewName

public final String getViewName(HttpServletRequest request)
Translates the request URI of the incoming HttpServletRequest to 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 (never null)
See Also:
UrlPathHelper.getLookupPathForRequest(javax.servlet.http.HttpServletRequest), 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

The Spring Framework

Copyright © 2002-2007 The Spring Framework.