## org.springframework.web.servlet.view.velocity
Class VelocityViewResolver

    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
                          org.springframework.web.servlet.view.velocity.VelocityViewResolver

All Implemented Interfaces:
  ApplicationContextAware, Ordered, ServletContextAware, ViewResolver

Direct Known Subclasses:
  VelocityLayoutViewResolver

    public class VelocityViewResolver

extends AbstractTemplateViewResolver

Convenience subclass of UrlBasedViewResolver that supports VelocityView (that is Velocity templates) and custom subclasses of it.

The view class for all views generated by this resolver can be specified via `setViewClass`. See UrlBasedViewResolver's javadoc for details.

Note: When chaining ViewResolvers, a VelocityViewResolver always needs to be last, as it will attempt to resolve any view name, no matter whether the underlying resource actually exists.

Since:
  13.12.2003
Author:
  Juergen Hoeller
See Also:
  `UrlBasedViewResolver.setViewClass(java.lang.Class)`, `UrlBasedViewResolver.setPrefix(java.lang.String)`, `UrlBasedViewResolver.setSuffix(java.lang.String)`, `UrlBasedViewResolver.setRequestContextAttribute(java.lang.String)`, `AbstractTemplateViewResolver.setExposeSpringMacroHelpers(boolean)`, `setVelocityFormatterAttribute(java.lang.String)`, `setDateToolAttribute(java.lang.String)`, `setNumberToolAttribute(java.lang.String)`, `VelocityView`

Field Summary

Fields inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver
`FORWARD_URL_PREFIX, REDIRECT_URL_PREFIX`

Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
`logger`

Fields inherited from interface org.springframework.core.Ordered
`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

Constructor Summary
`VelocityViewResolver()` Sets default viewClass to `requiredViewClass`.

Method Summary
`protected AbstractUrlBasedView` `buildView(String viewName)` Creates a new View instance of the specified view class and configures it.
`protected void` `initApplicationContext()` Subclasses can override this for custom initialization behavior.
`protected Class` `requiredViewClass()` Requires VelocityView.
`void` `setDateToolAttribute(String dateToolAttribute)` Set the name of the DateTool helper object to expose in the Velocity context of this view, or `null` if not needed.
`void` `setNumberToolAttribute(String numberToolAttribute)` Set the name of the NumberTool helper object to expose in the Velocity context of this view, or `null` if not needed.
`void` `setToolboxConfigLocation(String toolboxConfigLocation)` Set a Velocity Toolbox config location, for example "/WEB-INF/toolbox.xml", to automatically load a Velocity Tools toolbox definition file and expose all defined tools in the specified scopes.
`void` `setVelocityFormatterAttribute(String velocityFormatterAttribute)` Set the name of the VelocityFormatter helper object to expose in the Velocity context of this view, or `null` if not needed.

Methods inherited from class org.springframework.web.servlet.view.AbstractTemplateViewResolver
`setAllowRequestOverride, setAllowSessionOverride, setExposeRequestAttributes, setExposeSessionAttributes, setExposeSpringMacroHelpers`

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

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

Methods inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver
`clearCache, isCache, removeFromCache, resolveViewName, setCache`

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

### VelocityViewResolver

    public VelocityViewResolver()

  Sets default viewClass to `requiredViewClass`.

  See Also:
    `UrlBasedViewResolver.setViewClass(java.lang.Class)`, `requiredViewClass()`

Method Detail

### requiredViewClass

    protected Class requiredViewClass()

  Requires VelocityView.

  Overrides:
    `requiredViewClass` in class `AbstractTemplateViewResolver`
  See Also:
    `VelocityView`

### setVelocityFormatterAttribute

    public void setVelocityFormatterAttribute(String velocityFormatterAttribute)

  Set the name of the VelocityFormatter helper object to expose in the Velocity context of this view, or `null` if not needed. VelocityFormatter is part of the standard Velocity distribution.

  See Also:
    `VelocityFormatter`, `VelocityView.setVelocityFormatterAttribute(java.lang.String)`

### setDateToolAttribute

    public void setDateToolAttribute(String dateToolAttribute)

  Set the name of the DateTool helper object to expose in the Velocity context of this view, or `null` if not needed. DateTool is part of Velocity Tools 1.0.

  See Also:
    `DateTool`, `VelocityView.setDateToolAttribute(java.lang.String)`

### setNumberToolAttribute

    public void setNumberToolAttribute(String numberToolAttribute)

  Set the name of the NumberTool helper object to expose in the Velocity context of this view, or `null` if not needed. NumberTool is part of Velocity Tools 1.1.

  See Also:
    `NumberTool`, `VelocityView.setNumberToolAttribute(java.lang.String)`

### setToolboxConfigLocation

    public void setToolboxConfigLocation(String toolboxConfigLocation)

  Set a Velocity Toolbox config location, for example "/WEB-INF/toolbox.xml", to automatically load a Velocity Tools toolbox definition file and expose all defined tools in the specified scopes. If no config location is specified, no toolbox will be loaded and exposed.

  The specfied location string needs to refer to a ServletContext resource, as expected by ServletToolboxManager which is part of the view package of Velocity Tools.

  Note: Specifying a toolbox config location will lead to VelocityToolboxView instances being created.

  See Also:
    `ServletToolboxManager.getInstance(javax.servlet.ServletContext, java.lang.String)`, `VelocityToolboxView.setToolboxConfigLocation(java.lang.String)`

### initApplicationContext

    protected void initApplicationContext()

  Description copied from class: `ApplicationObjectSupport`
  Subclasses can override this for custom initialization behavior.

  The default implementation is empty. Called by `ApplicationObjectSupport.initApplicationContext(org.springframework.context.ApplicationContext)`.

  Overrides:
    `initApplicationContext` in class `UrlBasedViewResolver`
  See Also:
    `ApplicationObjectSupport.setApplicationContext(org.springframework.context.ApplicationContext)`

### 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 `AbstractTemplateViewResolver`
  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)`

Copyright © 2002-2008 The Spring Framework.