## org.springframework.web.servlet.mvc
Class AbstractUrlViewController

    java.lang.Object
      org.springframework.context.support.ApplicationObjectSupport
          org.springframework.web.context.support.WebApplicationObjectSupport
              org.springframework.web.servlet.support.WebContentGenerator
                  org.springframework.web.servlet.mvc.AbstractController
                      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)`