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

    Constructors
    Constructor and Description
    `AbstractUrlViewController()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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` | `setRemoveSemicolonContent(boolean removeSemicolonContent)` Set if ";" (semicolon) content should be stripped from the request URI.
    `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, isAlwaysMustRevalidate, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, preventCaching, setAlwaysMustRevalidate, 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)`

    - #### setRemoveSemicolonContent

          public void setRemoveSemicolonContent(boolean removeSemicolonContent)

      Set if ";" (semicolon) content should be stripped from the request URI.
      See Also:
        `UrlPathHelper.setRemoveSemicolonContent(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)`