org.springframework.web.servlet.view.velocity
Class VelocityToolboxView
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
- All Implemented Interfaces: 
 - Aware, BeanNameAware, InitializingBean, ApplicationContextAware, ServletContextAware, View
 
- Direct Known Subclasses: 
 - VelocityLayoutView
 
public class VelocityToolboxView
- extends VelocityView
 
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.
- Since:
 
  - 1.1.3
 
- Author:
 
  - Juergen Hoeller
 
- See Also:
 setToolboxConfigLocation(java.lang.String), 
initTool(java.lang.Object, org.apache.velocity.context.Context), 
ViewContext, 
ChainedContext
 
 
 
 
 
 
 
| Methods inherited from class org.springframework.web.servlet.view.velocity.VelocityView | 
autodetectVelocityEngine, checkResource, createVelocityContext, doRender, exposeHelpers, exposeHelpers, exposeHelpers, exposeToolAttributes, getEncoding, getTemplate, getTemplate, getVelocityEngine, initApplicationContext, isCacheTemplate, mergeTemplate, renderMergedTemplateModel, setCacheTemplate, setDateToolAttribute, setEncoding, setNumberToolAttribute, setToolAttributes, setVelocityEngine | 
 
 
 
| Methods inherited from class org.springframework.web.servlet.view.AbstractView | 
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, writeToResponse | 
 
 
 
 
VelocityToolboxView
public VelocityToolboxView()
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.
- See Also:
 ServletToolboxManager.getInstance(javax.servlet.ServletContext, java.lang.String)
 
 
getToolboxConfigLocation
protected String getToolboxConfigLocation()
- Return the Velocity Toolbox config location, if any.
 
 
createVelocityContext
protected Context createVelocityContext(Map<String,Object> model,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
                                 throws Exception
- 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.
- Overrides:
 createVelocityContext in class VelocityView
 
- Parameters:
 model - the model Map, containing the model attributes to be exposed to the viewrequest - current HTTP requestresponse - current HTTP response
- Returns:
 - the Velocity Context
 - Throws:
 Exception - if there's a fatal error while creating the context- See Also:
 initTool(java.lang.Object, org.apache.velocity.context.Context)
 
 
initTool
protected void initTool(Object tool,
                        Context velocityContext)
                 throws Exception
- 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(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) in this class.
- Overrides:
 initTool in class VelocityView
 
- Parameters:
 tool - the tool instance to initializevelocityContext - the Velocity context
- Throws:
 Exception - if initializion of the tool failed- See Also:
 VelocityView.createVelocityContext(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse), 
ViewContext, 
ChainedContext, 
VelocityToolboxView