Class VelocityConfigurer
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.InitializingBean,org.springframework.context.ResourceLoaderAware,org.springframework.web.context.ServletContextAware,VelocityConfig
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath"><value>/WEB-INF/velocity/</value></property> </bean>This bean must be included in the application context of any application using Spring's
VelocityView for web MVC. It exists purely to configure
Velocity; it is not meant to be referenced by application components (just
internally by VelocityView). This class implements VelocityConfig
in order to be found by VelocityView without depending on the bean name of
this configurer. Each DispatcherServlet may define its own VelocityConfigurer
if desired, potentially with different template loader paths.
Note that you can also refer to a pre-configured VelocityEngine instance via the "velocityEngine" property, e.g. set up by VelocityEngineFactoryBean, This allows to share a VelocityEngine for web and email usage, for example.
This configurer registers the "spring.vm" Velocimacro library for web views
(contained in this package and thus in spring.jar), which makes
all of Spring's default Velocity macros available to the views.
This allows for using the Spring-provided macros such as follows:
#springBind("person.age")
age is ${status.value}- Author:
- Rod Johnson, Juergen Hoeller, Darren Davison
- See Also:
-
Field Summary
Fields inherited from class org.springframework.web.servlet.view.velocity.VelocityEngineFactory
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInitialize VelocityEngineFactory's VelocityEngine if not overridden by a pre-configured VelocityEngine.org.apache.velocity.app.VelocityEngineReturn the VelocityEngine for the current web application context.protected voidpostProcessVelocityEngine(org.apache.velocity.app.VelocityEngine velocityEngine) Provides a ClasspathResourceLoader in addition to any default or user-defined loader in order to load the spring Velocity macros from the class path.voidsetServletContext(javax.servlet.ServletContext servletContext) voidsetVelocityEngine(org.apache.velocity.app.VelocityEngine velocityEngine) Set a pre-configured VelocityEngine to use for the Velocity web configuration: e.g.Methods inherited from class org.springframework.web.servlet.view.velocity.VelocityEngineFactory
createVelocityEngine, setConfigLocation, setOverrideLogging, setPreferFileSystemAccess, setResourceLoader, setResourceLoaderPath, setVelocityProperties, setVelocityPropertiesMapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ResourceLoaderAware
setResourceLoader
-
Constructor Details
-
VelocityConfigurer
public VelocityConfigurer()
-
-
Method Details
-
setVelocityEngine
public void setVelocityEngine(org.apache.velocity.app.VelocityEngine velocityEngine) Set a pre-configured VelocityEngine to use for the Velocity web configuration: e.g. a shared one for web and email usage, set up via VelocityEngineFactoryBean.Note that the Spring macros will not be enabled automatically in case of an external VelocityEngine passed in here. Make sure to include
spring.vmin your template loader path in such a scenario (if there is an actual need to use those macros).If this is not set, VelocityEngineFactory's properties (inherited by this class) have to be specified.
-
setServletContext
public void setServletContext(javax.servlet.ServletContext servletContext) - Specified by:
setServletContextin interfaceorg.springframework.web.context.ServletContextAware
-
afterPropertiesSet
public void afterPropertiesSet() throws IOException, org.apache.velocity.exception.VelocityExceptionInitialize VelocityEngineFactory's VelocityEngine if not overridden by a pre-configured VelocityEngine.- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
IOExceptionorg.apache.velocity.exception.VelocityException- See Also:
-
postProcessVelocityEngine
protected void postProcessVelocityEngine(org.apache.velocity.app.VelocityEngine velocityEngine) Provides a ClasspathResourceLoader in addition to any default or user-defined loader in order to load the spring Velocity macros from the class path.- Overrides:
postProcessVelocityEnginein classVelocityEngineFactory- Parameters:
velocityEngine- the current VelocityEngine- See Also:
-
ClasspathResourceLoader
-
getVelocityEngine
public org.apache.velocity.app.VelocityEngine getVelocityEngine()Description copied from interface:VelocityConfigReturn the VelocityEngine for the current web application context. May be unique to one servlet, or shared in the root context.- Specified by:
getVelocityEnginein interfaceVelocityConfig- Returns:
- the VelocityEngine
-