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.
setToolboxConfigLocation(java.lang.String)
,
initTool(java.lang.Object, org.apache.velocity.context.Context)
,
ViewContext
,
ChainedContext
SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE
DEFAULT_CONTENT_TYPE
logger
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
Constructor and Description |
---|
VelocityToolboxView() |
Modifier and Type | Method and Description |
---|---|
protected org.apache.velocity.context.Context |
createVelocityContext(Map<String,Object> model,
HttpServletRequest request,
HttpServletResponse response)
Overridden to create a ChainedContext, which is part of the view package
of Velocity Tools, as special context.
|
protected String |
getToolboxConfigLocation()
Return the Velocity Toolbox config location, if any.
|
protected void |
initTool(Object tool,
org.apache.velocity.context.Context velocityContext)
Overridden to check for the ViewContext interface which is part of the
view package of Velocity Tools.
|
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.
|
autodetectVelocityEngine, checkResource, createVelocityContext, doRender, exposeHelpers, exposeHelpers, exposeHelpers, exposeToolAttributes, getEncoding, getTemplate, getTemplate, getVelocityEngine, initApplicationContext, isCacheTemplate, mergeTemplate, renderMergedTemplateModel, setCacheTemplate, setDateToolAttribute, setEncoding, setNumberToolAttribute, setToolAttributes, setVelocityEngine
applyContentType, renderMergedOutputModel, setAllowRequestOverride, setAllowSessionOverride, setExposeRequestAttributes, setExposeSessionAttributes, setExposeSpringMacroHelpers
afterPropertiesSet, getUrl, isUrlRequired, setUrl, toString
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponse
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext
public void setToolboxConfigLocation(String toolboxConfigLocation)
The specified location string needs to refer to a ServletContext resource, as expected by ServletToolboxManager which is part of the view package of Velocity Tools.
ServletToolboxManager.getInstance(javax.servlet.ServletContext, java.lang.String)
protected String getToolboxConfigLocation()
protected org.apache.velocity.context.Context createVelocityContext(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception
createVelocityContext
in class VelocityView
model
- the model Map, containing the model attributes to be exposed to the viewrequest
- current HTTP requestresponse
- current HTTP responseException
- if there's a fatal error while creating the contextinitTool(java.lang.Object, org.apache.velocity.context.Context)
protected void initTool(Object tool, org.apache.velocity.context.Context velocityContext) throws Exception
createVelocityContext(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
in this class.initTool
in class VelocityView
tool
- the tool instance to initializevelocityContext
- the Velocity contextException
- if initializion of the tool failedVelocityView.createVelocityContext(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
,
ViewContext
,
ChainedContext
,
VelocityToolboxView