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
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(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.
|
setAllowRequestOverride, setAllowSessionOverride, setExposeRequestAttributes, setExposeSessionAttributes, setExposeSpringMacroHelpers
canHandle, createView, getAttributesMap, getCacheKey, getContentType, getExposePathVariables, 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
protected Class<?> requiredViewClass()
VelocityView
.requiredViewClass
in class AbstractTemplateViewResolver
AbstractUrlBasedView
public void setDateToolAttribute(String dateToolAttribute)
null
if not needed. DateTool is part of Velocity Tools 1.0.DateTool
,
VelocityView.setDateToolAttribute(java.lang.String)
public void setNumberToolAttribute(String numberToolAttribute)
null
if not needed. NumberTool is part of Velocity Tools 1.1.NumberTool
,
VelocityView.setNumberToolAttribute(java.lang.String)
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.
Note: Specifying a toolbox config location will lead to VelocityToolboxView instances being created.
ServletToolboxManager.getInstance(javax.servlet.ServletContext, java.lang.String)
,
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(String viewName) throws 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 buildException
- if the view couldn't be resolvedUrlBasedViewResolver.loadView(String, java.util.Locale)