public class VelocityViewResolver extends AbstractTemplateViewResolver
UrlBasedViewResolver
that supports VelocityView
(i.e. Velocity templates) and custom subclasses of it.
The view class for all views generated by this resolver can be specified via the "viewClass" property. See UrlBasedViewResolver's javadoc for details.
Note: When chaining ViewResolvers, a VelocityViewResolver will check for the existence of the specified template resources and only return a non-null View object if the template was actually found.
UrlBasedViewResolver.setViewClass(java.lang.Class)
,
UrlBasedViewResolver.setPrefix(java.lang.String)
,
UrlBasedViewResolver.setSuffix(java.lang.String)
,
UrlBasedViewResolver.setRequestContextAttribute(java.lang.String)
,
AbstractTemplateViewResolver.setExposeSpringMacroHelpers(boolean)
,
setDateToolAttribute(java.lang.String)
,
setNumberToolAttribute(java.lang.String)
,
VelocityView
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
dateToolAttribute |
private java.lang.String |
numberToolAttribute |
private java.lang.String |
toolboxConfigLocation |
FORWARD_URL_PREFIX, REDIRECT_URL_PREFIX
DEFAULT_CACHE_LIMIT
logger
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
VelocityViewResolver() |
Modifier and Type | Method and Description |
---|---|
protected AbstractUrlBasedView |
buildView(java.lang.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 java.lang.Class |
requiredViewClass()
Requires
VelocityView . |
void |
setDateToolAttribute(java.lang.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(java.lang.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(java.lang.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.
|
setAllowRequestOverride, setAllowSessionOverride, setExposeRequestAttributes, setExposeSessionAttributes, setExposeSpringMacroHelpers
canHandle, createView, getAttributesMap, getCacheKey, getContentType, getOrder, getPrefix, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, isRedirectContextRelative, isRedirectHttp10Compatible, loadView, setAttributes, setAttributesMap, setContentType, setExposePathVariables, setOrder, setPrefix, setRedirectContextRelative, setRedirectHttp10Compatible, setRequestContextAttribute, setSuffix, setViewClass, setViewNames
clearCache, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheLimit, setCacheUnresolved
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext
private java.lang.String dateToolAttribute
private java.lang.String numberToolAttribute
private java.lang.String toolboxConfigLocation
protected java.lang.Class requiredViewClass()
VelocityView
.requiredViewClass
in class AbstractTemplateViewResolver
AbstractUrlBasedView
public void setDateToolAttribute(java.lang.String dateToolAttribute)
null
if not needed. DateTool is part of Velocity Tools 1.0.org.apache.velocity.tools.generic.DateTool
,
VelocityView.setDateToolAttribute(java.lang.String)
public void setNumberToolAttribute(java.lang.String numberToolAttribute)
null
if not needed. NumberTool is part of Velocity Tools 1.1.org.apache.velocity.tools.generic.NumberTool
,
VelocityView.setNumberToolAttribute(java.lang.String)
public void setToolboxConfigLocation(java.lang.String toolboxConfigLocation)
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.
org.apache.velocity.tools.view.servlet.ServletToolboxManager#getInstance
,
VelocityToolboxView.setToolboxConfigLocation(java.lang.String)
protected void initApplicationContext()
ApplicationObjectSupport
The default implementation is empty. Called by
ApplicationObjectSupport.initApplicationContext(org.springframework.context.ApplicationContext)
.
protected AbstractUrlBasedView buildView(java.lang.String viewName) throws java.lang.Exception
UrlBasedViewResolver
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.
buildView
in class AbstractTemplateViewResolver
viewName
- the name of the view to buildjava.lang.Exception
- if the view couldn't be resolvedUrlBasedViewResolver.loadView(String, java.util.Locale)