org.springframework.web.servlet.mvc
Class AbstractUrlViewController

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.support.WebContentGenerator
              extended by org.springframework.web.servlet.mvc.AbstractController
                  extended by org.springframework.web.servlet.mvc.AbstractUrlViewController
All Implemented Interfaces:
Aware, ApplicationContextAware, ServletContextAware, Controller
Direct Known Subclasses:
UrlFilenameViewController

public abstract class AbstractUrlViewController
extends AbstractController

Abstract base class for Controllers that return a view name based on the request URL.

Provides infrastructure for determining view names from URLs and configurable URL lookup. For information on the latter, see alwaysUseFullPath and urlDecode properties.

Since:
1.2.6
Author:
Juergen Hoeller
See Also:
setAlwaysUseFullPath(boolean), setUrlDecode(boolean)

Field Summary
 
Fields inherited from class org.springframework.web.servlet.support.WebContentGenerator
METHOD_GET, METHOD_HEAD, METHOD_POST
 
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
 
Constructor Summary
AbstractUrlViewController()
           
 
Method Summary
protected  UrlPathHelper getUrlPathHelper()
          Return the UrlPathHelper to use for the resolution of lookup paths.
protected abstract  String getViewNameForRequest(HttpServletRequest request)
          Return the name of the view to render for this request, based on the given lookup path.
protected  ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
          Retrieves the URL path to use for lookup and delegates to getViewNameForRequest(javax.servlet.http.HttpServletRequest).
 void setAlwaysUseFullPath(boolean alwaysUseFullPath)
          Set if URL lookup should always use full path within current servlet context.
 void setUrlDecode(boolean urlDecode)
          Set if context path and request URI should be URL-decoded.
 void setUrlPathHelper(UrlPathHelper urlPathHelper)
          Set the UrlPathHelper to use for the resolution of lookup paths.
 
Methods inherited from class org.springframework.web.servlet.mvc.AbstractController
handleRequest, isSynchronizeOnSession, setSynchronizeOnSession
 
Methods inherited from class org.springframework.web.servlet.support.WebContentGenerator
applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, getCacheSeconds, getSupportedMethods, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, preventCaching, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader
 
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
 
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractUrlViewController

public AbstractUrlViewController()
Method Detail

setAlwaysUseFullPath

public void setAlwaysUseFullPath(boolean alwaysUseFullPath)
Set if URL lookup should always use full path within 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".

See Also:
UrlPathHelper.setAlwaysUseFullPath(boolean)

setUrlDecode

public void setUrlDecode(boolean urlDecode)
Set if 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).

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 MethodNameResolvers and HandlerMappings.

See Also:
AbstractHandlerMapping.setUrlPathHelper(org.springframework.web.util.UrlPathHelper)

getUrlPathHelper

protected UrlPathHelper getUrlPathHelper()
Return the UrlPathHelper to use for the resolution of lookup paths.


handleRequestInternal

protected ModelAndView handleRequestInternal(HttpServletRequest request,
                                             HttpServletResponse response)
Retrieves the URL path to use for lookup and delegates to getViewNameForRequest(javax.servlet.http.HttpServletRequest). Also adds the content of RequestContextUtils.getInputFlashMap(javax.servlet.http.HttpServletRequest) to the model.

Specified by:
handleRequestInternal in class AbstractController
See Also:
AbstractController.handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

getViewNameForRequest

protected abstract String getViewNameForRequest(HttpServletRequest request)
Return the name of the view to render for this request, based on the given lookup path. Called by handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse).

Parameters:
request - current HTTP request
Returns:
a view name for this request (never null)
See Also:
handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse), setAlwaysUseFullPath(boolean), setUrlDecode(boolean)