AbstractTemplateViewResolver (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.web.servlet.view

## Class AbstractTemplateViewResolver

- java.lang.Object
- - org.springframework.context.support.ApplicationObjectSupport
  - - org.springframework.web.context.support.WebApplicationObjectSupport
    - - org.springframework.web.servlet.view.AbstractCachingViewResolver
      - - org.springframework.web.servlet.view.UrlBasedViewResolver
        - - org.springframework.web.servlet.view.AbstractTemplateViewResolver

- All Implemented Interfaces:
    Aware, ApplicationContextAware, Ordered, ServletContextAware, ViewResolver
  Direct Known Subclasses:
    FreeMarkerViewResolver, VelocityViewResolver

      public class AbstractTemplateViewResolver
      extends UrlBasedViewResolver

  Abstract base class for template view resolvers, in particular for Velocity and FreeMarker views.

  Provides a convenient way to specify `AbstractTemplateView`'s exposure flags for request attributes, session attributes, and Spring's macro helpers.

  Since:
    1.1
  Author:
    Juergen Hoeller
  See Also:
    `AbstractTemplateView`, `VelocityViewResolver`, `FreeMarkerViewResolver`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver

      `FORWARD_URL_PREFIX, REDIRECT_URL_PREFIX`

    - ### Fields inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver

      `DEFAULT_CACHE_LIMIT`

    - ### Fields inherited from class org.springframework.context.support.ApplicationObjectSupport

      `logger`

    - ### Fields inherited from interface org.springframework.core.Ordered

      `HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractTemplateViewResolver()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected AbstractUrlBasedView` | `buildView(String viewName)` Creates a new View instance of the specified view class and configures it.
    `protected Class` | `requiredViewClass()` Return the required type of view for this resolver.
    `void` | `setAllowRequestOverride(boolean allowRequestOverride)` Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
    `void` | `setAllowSessionOverride(boolean allowSessionOverride)` Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
    `void` | `setExposeRequestAttributes(boolean exposeRequestAttributes)` Set whether all request attributes should be added to the model prior to merging with the template.
    `void` | `setExposeSessionAttributes(boolean exposeSessionAttributes)` Set whether all HttpSession attributes should be added to the model prior to merging with the template.
    `void` | `setExposeSpringMacroHelpers(boolean exposeSpringMacroHelpers)` Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".

    - ### Methods inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver

      `canHandle, createView, getAttributesMap, getCacheKey, getContentType, getOrder, getPrefix, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, initApplicationContext, isRedirectContextRelative, isRedirectHttp10Compatible, loadView, setAttributes, setAttributesMap, setContentType, setExposePathVariables, setOrder, setPrefix, setRedirectContextRelative, setRedirectHttp10Compatible, setRequestContextAttribute, setSuffix, setViewClass, setViewNames`

    - ### Methods inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver

      `clearCache, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheLimit, setCacheUnresolved`

    - ### 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, requiredContextClass, setApplicationContext`

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

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

- - ### Constructor Detail

    - #### AbstractTemplateViewResolver

          public AbstractTemplateViewResolver()

  - ### Method Detail

    - #### requiredViewClass

          protected Class requiredViewClass()

      Description copied from class: `UrlBasedViewResolver`
      Return the required type of view for this resolver. This implementation returns AbstractUrlBasedView.
      Overrides:
        `requiredViewClass` in class `UrlBasedViewResolver`
      See Also:
        `AbstractUrlBasedView`

    - #### setExposeRequestAttributes

          public void setExposeRequestAttributes(boolean exposeRequestAttributes)

      Set whether all request attributes should be added to the model prior to merging with the template. Default is "false".
      See Also:
        `AbstractTemplateView.setExposeRequestAttributes(boolean)`

    - #### setAllowRequestOverride

          public void setAllowRequestOverride(boolean allowRequestOverride)

      Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name. Default is "false", which causes an exception to be thrown if request attributes of the same name as model attributes are found.
      See Also:
        `AbstractTemplateView.setAllowRequestOverride(boolean)`

    - #### setExposeSessionAttributes

          public void setExposeSessionAttributes(boolean exposeSessionAttributes)

      Set whether all HttpSession attributes should be added to the model prior to merging with the template. Default is "false".
      See Also:
        `AbstractTemplateView.setExposeSessionAttributes(boolean)`

    - #### setAllowSessionOverride

          public void setAllowSessionOverride(boolean allowSessionOverride)

      Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name. Default is "false", which causes an exception to be thrown if session attributes of the same name as model attributes are found.
      See Also:
        `AbstractTemplateView.setAllowSessionOverride(boolean)`

    - #### setExposeSpringMacroHelpers

          public void setExposeSpringMacroHelpers(boolean exposeSpringMacroHelpers)

      Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext". Default is "true".
      See Also:
        `AbstractTemplateView.setExposeSpringMacroHelpers(boolean)`

    - #### buildView

          protected AbstractUrlBasedView buildView(String viewName)
                                            throws Exception

      Description copied from class: `UrlBasedViewResolver`
      Creates a new View instance of the specified view class and configures it. Does not perform any lookup for pre-defined View instances.

      Spring lifecycle methods as defined by the bean container do not have to be called here; those will be applied by the `loadView` method after this method returns.

      Subclasses will typically call `super.buildView(viewName)` first, before setting further properties themselves. `loadView` will then apply Spring lifecycle methods at the end of this process.

      Overrides:
        `buildView` in class `UrlBasedViewResolver`
      Parameters:
        `viewName` - the name of the view to build
      Returns:
        the View instance
      Throws:
        `Exception` - if the view couldn't be resolved
      See Also:
        `UrlBasedViewResolver.loadView(String, java.util.Locale)`