public class

VelocityToolboxView

extends VelocityView
java.lang.Object
   ↳ org.springframework.context.support.ApplicationObjectSupport
     ↳ org.springframework.web.context.support.WebApplicationObjectSupport
       ↳ org.springframework.web.servlet.view.AbstractView
         ↳ org.springframework.web.servlet.view.AbstractUrlBasedView
           ↳ org.springframework.web.servlet.view.AbstractTemplateView
             ↳ org.springframework.web.servlet.view.velocity.VelocityView
               ↳ org.springframework.web.servlet.view.velocity.VelocityToolboxView
Known Direct Subclasses

Class Overview

VelocityView subclass which adds support for Velocity Tools toolboxes and Velocity Tools ViewTool callbacks / Velocity Tools 1.3 init methods.

Specify a "toolboxConfigLocation", 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.

This view will always create a special Velocity context, namely an instance of the ChainedContext class which is part of the view package of Velocity tools. This allows to use tools from the view package of Velocity Tools, like LinkTool, which need to be initialized with a special context that implements the ViewContext interface (i.e. a ChainedContext).

This view also checks tools that are specified as "toolAttributes": If they implement the ViewTool interface, they will get initialized with the Velocity context. This allows tools from the view package of Velocity Tools, such as LinkTool, to be defined as "toolAttributes" on a VelocityToolboxView, instead of in a separate toolbox XML file.

This is a separate class mainly to avoid a required dependency on the view package of Velocity Tools in VelocityView itself. As of Spring 3.0, this class requires Velocity Tools 1.3 or higher.

See Also

Summary

[Expand]
Inherited Constants
From class org.springframework.web.servlet.view.AbstractTemplateView
From class org.springframework.web.servlet.view.AbstractView
[Expand]
Inherited Fields
From class org.springframework.context.support.ApplicationObjectSupport
From interface org.springframework.web.servlet.View
Public Constructors
VelocityToolboxView()
Public Methods
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.
Protected Methods
Context createVelocityContext(Map<StringObject> model, HttpServletRequest request, HttpServletResponse response)
Overridden to create a ChainedContext, which is part of the view package of Velocity Tools, as special context.
String getToolboxConfigLocation()
Return the Velocity Toolbox config location, if any.
void initTool(Object tool, Context velocityContext)
Overridden to check for the ViewContext interface which is part of the view package of Velocity Tools.
[Expand]
Inherited Methods
From class org.springframework.web.servlet.view.velocity.VelocityView
From class org.springframework.web.servlet.view.AbstractTemplateView
From class org.springframework.web.servlet.view.AbstractUrlBasedView
From class org.springframework.web.servlet.view.AbstractView
From class org.springframework.web.context.support.WebApplicationObjectSupport
From class org.springframework.context.support.ApplicationObjectSupport
From class java.lang.Object
From interface org.springframework.beans.factory.BeanNameAware
From interface org.springframework.beans.factory.InitializingBean
From interface org.springframework.context.ApplicationContextAware
From interface org.springframework.web.context.ServletContextAware
From interface org.springframework.web.servlet.View

Public Constructors

public VelocityToolboxView ()

Public Methods

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.

See Also
  • org.apache.velocity.tools.view.servlet.ServletToolboxManager#getInstance

Protected Methods

protected Context createVelocityContext (Map<StringObject> model, HttpServletRequest request, HttpServletResponse response)

Overridden to create a ChainedContext, which is part of the view package of Velocity Tools, as special context. ChainedContext is needed for initialization of ViewTool instances.

Parameters
model the model Map, containing the model attributes to be exposed to the view
request current HTTP request
response current HTTP response
Returns
  • the Velocity Context
Throws
Exception

protected String getToolboxConfigLocation ()

Return the Velocity Toolbox config location, if any.

protected void initTool (Object tool, Context velocityContext)

Overridden to check for the ViewContext interface which is part of the view package of Velocity Tools. This requires a special Velocity context, like ChainedContext as set up by createVelocityContext(Map) in this class.

Parameters
tool the tool instance to initialize
velocityContext the Velocity context
Throws
Exception