类 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
- 直接已知子类:
VelocityToolboxView
@Deprecated public class VelocityView extends AbstractTemplateView
已过时。as of Spring 4.3, in favor of FreeMarkerView using the Velocity template engine.Exposes the following JavaBean properties:
- url: the location of the Velocity template to be wrapped, relative to the Velocity resource loader path (see VelocityConfigurer).
- encoding (optional, default is determined by Velocity configuration): the encoding of the Velocity template file
- velocityFormatterAttribute (optional, default=null): the name of the VelocityFormatter helper object to expose in the Velocity context of this view, or
null
if not needed. VelocityFormatter is part of standard Velocity. - dateToolAttribute (optional, default=null): the name of the DateTool helper object to expose in the Velocity context of this view, or
null
if not needed. DateTool is part of Velocity Tools. - numberToolAttribute (optional, default=null): the name of the NumberTool helper object to expose in the Velocity context of this view, or
null
if not needed. NumberTool is part of Velocity Tools. - cacheTemplate (optional, default=false): whether or not the Velocity template should be cached. It should normally be true in production, but setting this to false enables us to modify Velocity templates without restarting the application (similar to JSPs). Note that this is a minor optimization only, as Velocity itself caches templates in a modification-aware fashion.
Depends on a VelocityConfig object such as VelocityConfigurer being accessible in the current web application context, with any bean name. Alternatively, you can set the VelocityEngine object as bean property.
Note: Spring 3.0's VelocityView requires Velocity 1.4 or higher, and optionally Velocity Tools 1.1 or higher (depending on the use of DateTool and/or NumberTool).
- 作者:
- Rod Johnson, Juergen Hoeller, Dave Syer
- 另请参阅:
VelocityConfig
,VelocityConfigurer
,AbstractUrlBasedView.setUrl(java.lang.String)
,AbstractTemplateView.setExposeSpringMacroHelpers(boolean)
,setEncoding(java.lang.String)
,setVelocityEngine(org.apache.velocity.app.VelocityEngine)
,VelocityConfig
,VelocityConfigurer
字段概要
从类继承的字段 org.springframework.web.servlet.view.AbstractTemplateView
SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE
从类继承的字段 org.springframework.web.servlet.view.AbstractView
DEFAULT_CONTENT_TYPE
从类继承的字段 org.springframework.context.support.ApplicationObjectSupport
logger
从接口继承的字段 org.springframework.web.servlet.View
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
构造器概要
构造器 构造器 说明 VelocityView()
已过时。
方法概要
所有方法 实例方法 具体方法 已过时的方法 修饰符和类型 方法 说明 protected org.apache.velocity.app.VelocityEngine
autodetectVelocityEngine()
已过时。Autodetect a VelocityEngine via the ApplicationContext.boolean
checkResource(Locale locale)
已过时。Check that the Velocity template used for this view exists and is valid.protected org.apache.velocity.context.Context
createVelocityContext(Map<String,Object> model)
已过时。Create a Velocity Context instance for the given model, to be passed to the template for merging.protected org.apache.velocity.context.Context
createVelocityContext(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response)
已过时。Create a Velocity Context instance for the given model, to be passed to the template for merging.protected void
doRender(org.apache.velocity.context.Context context, HttpServletResponse response)
已过时。Render the Velocity view to the given response, using the given Velocity context which contains the complete template model to use.protected void
exposeHelpers(Map<String,Object> model, HttpServletRequest request)
已过时。Expose helpers unique to each rendering operation.protected void
exposeHelpers(org.apache.velocity.context.Context velocityContext, HttpServletRequest request)
已过时。Expose helpers unique to each rendering operation.protected void
exposeHelpers(org.apache.velocity.context.Context velocityContext, HttpServletRequest request, HttpServletResponse response)
已过时。Expose helpers unique to each rendering operation.protected void
exposeToolAttributes(org.apache.velocity.context.Context velocityContext, HttpServletRequest request)
已过时。Expose the tool attributes, according to corresponding bean property settings.protected String
getEncoding()
已过时。Return the encoding for the Velocity template.protected org.apache.velocity.Template
getTemplate()
已过时。Retrieve the Velocity template to be rendered by this view.protected org.apache.velocity.Template
getTemplate(String name)
已过时。Retrieve the Velocity template specified by the given name, using the encoding specified by the "encoding" bean property.protected org.apache.velocity.app.VelocityEngine
getVelocityEngine()
已过时。Return the VelocityEngine used by this view.protected void
initApplicationContext()
已过时。Invoked on startup.protected void
initTool(Object tool, org.apache.velocity.context.Context velocityContext)
已过时。Initialize the given tool instance.protected boolean
isCacheTemplate()
已过时。Return whether the Velocity template should be cached.protected void
mergeTemplate(org.apache.velocity.Template template, org.apache.velocity.context.Context context, HttpServletResponse response)
已过时。Merge the template with the context.protected void
renderMergedTemplateModel(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response)
已过时。Process the model map by merging it with the Velocity template.void
setCacheTemplate(boolean cacheTemplate)
已过时。Set whether the Velocity template should be cached.void
setDateToolAttribute(String dateToolAttribute)
已过时。Set the name of the DateTool helper object to expose in the Velocity context of this view, ornull
if not needed.void
setEncoding(String encoding)
已过时。Set the encoding of the Velocity template file.void
setNumberToolAttribute(String numberToolAttribute)
已过时。Set the name of the NumberTool helper object to expose in the Velocity context of this view, ornull
if not needed.void
setToolAttributes(Map<String,Class<?>> toolAttributes)
已过时。Set tool attributes to expose to the view, as attribute name / class name pairs.void
setVelocityEngine(org.apache.velocity.app.VelocityEngine velocityEngine)
已过时。Set the VelocityEngine to be used by this view.从类继承的方法 org.springframework.web.servlet.view.AbstractTemplateView
applyContentType, renderMergedOutputModel, setAllowRequestOverride, setAllowSessionOverride, setExposeRequestAttributes, setExposeSessionAttributes, setExposeSpringMacroHelpers
从类继承的方法 org.springframework.web.servlet.view.AbstractUrlBasedView
afterPropertiesSet, getUrl, isUrlRequired, setUrl, toString
从类继承的方法 org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponse
从类继承的方法 org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
从类继承的方法 org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext
构造器详细资料
VelocityView
public VelocityView()
已过时。
方法详细资料
setToolAttributes
public void setToolAttributes(Map<String,Class<?>> toolAttributes)
已过时。Set tool attributes to expose to the view, as attribute name / class name pairs. An instance of the given class will be added to the Velocity context for each rendering operation, under the given attribute name.For example, an instance of MathTool, which is part of the generic package of Velocity Tools, can be bound under the attribute name "math", specifying the fully qualified class name "org.apache.velocity.tools.generic.MathTool" as value.
Note that VelocityView can only create simple generic tools or values, that is, classes with a public default constructor and no further initialization needs. This class does not do any further checks, to not introduce a required dependency on a specific tools package.
For tools that are part of the view package of Velocity Tools, a special Velocity context and a special init callback are needed. Use VelocityToolboxView in such a case, or override
createVelocityContext
andinitTool
accordingly.For a simple VelocityFormatter instance or special locale-aware instances of DateTool/NumberTool, which are part of the generic package of Velocity Tools, specify the "velocityFormatterAttribute", "dateToolAttribute" or "numberToolAttribute" properties, respectively.
- 参数:
toolAttributes
- attribute names as keys, and tool class names as values- 另请参阅:
MathTool
,VelocityToolboxView
,createVelocityContext(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
,initTool(java.lang.Object, org.apache.velocity.context.Context)
,setDateToolAttribute(java.lang.String)
,setNumberToolAttribute(java.lang.String)
setDateToolAttribute
public void setDateToolAttribute(String dateToolAttribute)
已过时。Set the name of the DateTool helper object to expose in the Velocity context of this view, ornull
if not needed. The exposed DateTool will be aware of the current locale, as determined by Spring's LocaleResolver.DateTool is part of the generic package of Velocity Tools 1.0. Spring uses a special locale-aware subclass of DateTool.
setNumberToolAttribute
public void setNumberToolAttribute(String numberToolAttribute)
已过时。Set the name of the NumberTool helper object to expose in the Velocity context of this view, ornull
if not needed. The exposed NumberTool will be aware of the current locale, as determined by Spring's LocaleResolver.NumberTool is part of the generic package of Velocity Tools 1.1. Spring uses a special locale-aware subclass of NumberTool.
setEncoding
public void setEncoding(String encoding)
已过时。Set the encoding of the Velocity template file. Default is determined by the VelocityEngine: "ISO-8859-1" if not specified otherwise.Specify the encoding in the VelocityEngine rather than per template if all your templates share a common encoding.
getEncoding
protected String getEncoding()
已过时。Return the encoding for the Velocity template.
setCacheTemplate
public void setCacheTemplate(boolean cacheTemplate)
已过时。Set whether the Velocity template should be cached. Default is "false". It should normally be true in production, but setting this to false enables us to modify Velocity templates without restarting the application (similar to JSPs).Note that this is a minor optimization only, as Velocity itself caches templates in a modification-aware fashion.
isCacheTemplate
protected boolean isCacheTemplate()
已过时。Return whether the Velocity template should be cached.
setVelocityEngine
public void setVelocityEngine(org.apache.velocity.app.VelocityEngine velocityEngine)
已过时。Set the VelocityEngine to be used by this view.If this is not set, the default lookup will occur: A single VelocityConfig is expected in the current web application context, with any bean name.
- 另请参阅:
VelocityConfig
getVelocityEngine
protected org.apache.velocity.app.VelocityEngine getVelocityEngine()
已过时。Return the VelocityEngine used by this view.
initApplicationContext
protected void initApplicationContext() throws BeansException
已过时。Invoked on startup. Looks for a single VelocityConfig bean to find the relevant VelocityEngine for this factory.- 覆盖:
initApplicationContext
在类中ApplicationObjectSupport
- 抛出:
ApplicationContextException
- in case of initialization errorsBeansException
- if thrown by ApplicationContext methods- 另请参阅:
ApplicationObjectSupport.setApplicationContext(org.springframework.context.ApplicationContext)
autodetectVelocityEngine
protected org.apache.velocity.app.VelocityEngine autodetectVelocityEngine() throws BeansException
已过时。Autodetect a VelocityEngine via the ApplicationContext. Called if no explicit VelocityEngine has been specified.- 返回:
- the VelocityEngine to use for VelocityViews
- 抛出:
BeansException
- if no VelocityEngine could be found- 另请参阅:
ApplicationObjectSupport.getApplicationContext()
,setVelocityEngine(org.apache.velocity.app.VelocityEngine)
checkResource
public boolean checkResource(Locale locale) throws Exception
已过时。Check that the Velocity template used for this view exists and is valid.Can be overridden to customize the behavior, for example in case of multiple templates to be rendered into a single view.
- 覆盖:
checkResource
在类中AbstractUrlBasedView
- 参数:
locale
- the desired Locale that we're looking for- 返回:
true
if the resource exists (or is assumed to exist);false
if we know that it does not exist- 抛出:
Exception
- if the resource exists but is invalid (e.g. could not be parsed)
renderMergedTemplateModel
protected void renderMergedTemplateModel(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception
已过时。Process the model map by merging it with the Velocity template. Output is directed to the servlet response.This method can be overridden if custom behavior is needed.
- 指定者:
renderMergedTemplateModel
在类中AbstractTemplateView
- 参数:
model
- combined output Map, with request attributes and session attributes merged into it if requiredrequest
- current HTTP requestresponse
- current HTTP response- 抛出:
Exception
- if rendering failed
exposeHelpers
protected void exposeHelpers(Map<String,Object> model, HttpServletRequest request) throws Exception
已过时。Expose helpers unique to each rendering operation. This is necessary so that different rendering operations can't overwrite each other's formats etc.Called by
renderMergedTemplateModel
. The default implementation is empty. This method can be overridden to add custom helpers to the model.- 参数:
model
- the model that will be passed to the template for mergingrequest
- current HTTP request- 抛出:
Exception
- if there's a fatal error while we're adding model attributes- 另请参阅:
renderMergedTemplateModel(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
createVelocityContext
protected org.apache.velocity.context.Context createVelocityContext(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception
已过时。Create a Velocity Context instance for the given model, to be passed to the template for merging.The default implementation delegates to
createVelocityContext(Map)
. Can be overridden for a special context class, for example ChainedContext which is part of the view package of Velocity Tools. ChainedContext is needed for initialization of ViewTool instances.Have a look at
VelocityToolboxView
, which pre-implements ChainedContext support. This is not part of the standard VelocityView class in order to avoid a required dependency on the view package of Velocity Tools.- 参数:
model
- the model Map, containing the model attributes to be exposed to the viewrequest
- current HTTP requestresponse
- current HTTP response- 返回:
- the Velocity Context
- 抛出:
Exception
- if there's a fatal error while creating the context- 另请参阅:
createVelocityContext(Map)
,initTool(java.lang.Object, org.apache.velocity.context.Context)
,ChainedContext
,VelocityToolboxView
createVelocityContext
protected org.apache.velocity.context.Context createVelocityContext(Map<String,Object> model) throws Exception
已过时。Create a Velocity Context instance for the given model, to be passed to the template for merging.Default implementation creates an instance of Velocity's VelocityContext implementation class.
- 参数:
model
- the model Map, containing the model attributes to be exposed to the view- 返回:
- the Velocity Context
- 抛出:
Exception
- if there's a fatal error while creating the context- 另请参阅:
VelocityContext
exposeHelpers
protected void exposeHelpers(org.apache.velocity.context.Context velocityContext, HttpServletRequest request, HttpServletResponse response) throws Exception
已过时。Expose helpers unique to each rendering operation. This is necessary so that different rendering operations can't overwrite each other's formats etc.Called by
renderMergedTemplateModel
. Default implementation delegates toexposeHelpers(velocityContext, request)
. This method can be overridden to add special tools to the context, needing the servlet response to initialize (see Velocity Tools, for example LinkTool and ViewTool/ChainedContext).- 参数:
velocityContext
- Velocity context that will be passed to the templaterequest
- current HTTP requestresponse
- current HTTP response- 抛出:
Exception
- if there's a fatal error while we're adding model attributes- 另请参阅:
exposeHelpers(org.apache.velocity.context.Context, HttpServletRequest)
exposeHelpers
protected void exposeHelpers(org.apache.velocity.context.Context velocityContext, HttpServletRequest request) throws Exception
已过时。Expose helpers unique to each rendering operation. This is necessary so that different rendering operations can't overwrite each other's formats etc.Default implementation is empty. This method can be overridden to add custom helpers to the Velocity context.
- 参数:
velocityContext
- Velocity context that will be passed to the templaterequest
- current HTTP request- 抛出:
Exception
- if there's a fatal error while we're adding model attributes- 另请参阅:
exposeHelpers(Map, HttpServletRequest)
exposeToolAttributes
protected void exposeToolAttributes(org.apache.velocity.context.Context velocityContext, HttpServletRequest request) throws Exception
已过时。Expose the tool attributes, according to corresponding bean property settings.Do not override this method unless for further tools driven by bean properties. Override one of the
exposeHelpers
methods to add custom helpers.- 参数:
velocityContext
- Velocity context that will be passed to the templaterequest
- current HTTP request- 抛出:
Exception
- if there's a fatal error while we're adding model attributes- 另请参阅:
setDateToolAttribute(java.lang.String)
,setNumberToolAttribute(java.lang.String)
,exposeHelpers(Map, HttpServletRequest)
,exposeHelpers(org.apache.velocity.context.Context, HttpServletRequest, HttpServletResponse)
initTool
protected void initTool(Object tool, org.apache.velocity.context.Context velocityContext) throws Exception
已过时。Initialize the given tool instance. The default implementation is empty.Can be overridden to check for special callback interfaces, for example the ViewContext interface which is part of the view package of Velocity Tools. In the particular case of ViewContext, you'll usually also need a special Velocity context, like ChainedContext which is part of Velocity Tools too.
Have a look at
VelocityToolboxView
, which pre-implements such a ViewTool check. This is not part of the standard VelocityView class in order to avoid a required dependency on the view package of Velocity Tools.- 参数:
tool
- the tool instance to initializevelocityContext
- the Velocity context- 抛出:
Exception
- if initializion of the tool failed- 另请参阅:
createVelocityContext(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
,ViewContext
,ChainedContext
,VelocityToolboxView
doRender
protected void doRender(org.apache.velocity.context.Context context, HttpServletResponse response) throws Exception
已过时。Render the Velocity view to the given response, using the given Velocity context which contains the complete template model to use.The default implementation renders the template specified by the "url" bean property, retrieved via
getTemplate
. It delegates to themergeTemplate
method to merge the template instance with the given Velocity context.Can be overridden to customize the behavior, for example to render multiple templates into a single view.
- 参数:
context
- the Velocity context to use for renderingresponse
- servlet response (use this to get the OutputStream or Writer)- 抛出:
Exception
- if thrown by Velocity- 另请参阅:
AbstractUrlBasedView.setUrl(java.lang.String)
,getTemplate()
,mergeTemplate(org.apache.velocity.Template, org.apache.velocity.context.Context, javax.servlet.http.HttpServletResponse)
getTemplate
protected org.apache.velocity.Template getTemplate() throws Exception
已过时。Retrieve the Velocity template to be rendered by this view.By default, the template specified by the "url" bean property will be retrieved: either returning a cached template instance or loading a fresh instance (according to the "cacheTemplate" bean property)
- 返回:
- the Velocity template to render
- 抛出:
Exception
- if thrown by Velocity- 另请参阅:
AbstractUrlBasedView.setUrl(java.lang.String)
,setCacheTemplate(boolean)
,getTemplate(String)
getTemplate
protected org.apache.velocity.Template getTemplate(String name) throws Exception
已过时。Retrieve the Velocity template specified by the given name, using the encoding specified by the "encoding" bean property.Can be called by subclasses to retrieve a specific template, for example to render multiple templates into a single view.
- 参数:
name
- the file name of the desired template- 返回:
- the Velocity template
- 抛出:
Exception
- if thrown by Velocity- 另请参阅:
VelocityEngine.getTemplate(java.lang.String)
mergeTemplate
protected void mergeTemplate(org.apache.velocity.Template template, org.apache.velocity.context.Context context, HttpServletResponse response) throws Exception
已过时。Merge the template with the context. Can be overridden to customize the behavior.- 参数:
template
- the template to mergecontext
- the Velocity context to use for renderingresponse
- servlet response (use this to get the OutputStream or Writer)- 抛出:
Exception
- if thrown by Velocity- 另请参阅:
Template.merge(org.apache.velocity.context.Context, java.io.Writer)