Class FreeMarkerConfigurer
java.lang.Object
org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer
- All Implemented Interfaces:
Aware
,InitializingBean
,ResourceLoaderAware
,FreeMarkerConfig
public class FreeMarkerConfigurer
extends FreeMarkerConfigurationFactory
implements FreeMarkerConfig, InitializingBean, ResourceLoaderAware
JavaBean to configure FreeMarker for web usage, via the "configLocation"
and/or "freemarkerSettings" and/or "templateLoaderPath" properties.
The simplest way to use this class is to specify just a "templateLoaderPath";
you do not need any further configuration then.
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath"><value>/WEB-INF/freemarker/</value></property> </bean>This bean must be included in the application context of any application using Spring's FreeMarkerView for web MVC. It exists purely to configure FreeMarker. It is not meant to be referenced by application components but just internally by FreeMarkerView. Implements FreeMarkerConfig to be found by FreeMarkerView without depending on the bean name of the configurer. Each DispatcherServlet can define its own FreeMarkerConfigurer if desired.
Note that you can also refer to a preconfigured FreeMarker Configuration instance, for example one set up by FreeMarkerConfigurationFactoryBean, via the "configuration" property. This allows to share a FreeMarker Configuration for web and email usage, for example.
This configurer registers a template loader for this package, allowing to reference the "spring.ftl" macro library contained in this package:
<#import "/spring.ftl" as spring/> <@spring.bind "person.age"/> age is ${spring.status.value}Note: Spring's FreeMarker support requires FreeMarker 2.3 or higher.
- Since:
- 03.03.2004
- Author:
- Darren Davison, Rob Harrop
- See Also:
-
FreeMarkerConfigurationFactory.setConfigLocation(org.springframework.core.io.Resource)
FreeMarkerConfigurationFactory.setFreemarkerSettings(java.util.Properties)
FreeMarkerConfigurationFactory.setTemplateLoaderPath(java.lang.String)
setConfiguration(freemarker.template.Configuration)
FreeMarkerConfigurationFactoryBean
FreeMarkerView
-
Field Summary
Fields inherited from class org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Initialize FreeMarkerConfigurationFactory's Configuration if not overridden by a preconfigured FreeMarker Configuration.freemarker.template.Configuration
Return the Configuration object wrapped by this bean.protected void
postProcessTemplateLoaders
(List<freemarker.cache.TemplateLoader> templateLoaders) This implementation registers an additional ClassTemplateLoader for the Spring-provided macros, added to the end of the list.void
setConfiguration
(freemarker.template.Configuration configuration) Set a preconfigured Configuration to use for the FreeMarker web config, e.g.Methods inherited from class org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
createConfiguration, getAggregateTemplateLoader, getResourceLoader, getTemplateLoaderForPath, isPreferFileSystemAccess, newConfiguration, postProcessConfiguration, setConfigLocation, setDefaultEncoding, setFreemarkerSettings, setFreemarkerVariables, setPostTemplateLoaders, setPreferFileSystemAccess, setPreTemplateLoaders, setResourceLoader, setTemplateLoaderPath, setTemplateLoaderPaths
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.context.ResourceLoaderAware
setResourceLoader
-
Constructor Details
-
FreeMarkerConfigurer
public FreeMarkerConfigurer()
-
-
Method Details
-
setConfiguration
public void setConfiguration(freemarker.template.Configuration configuration) Set a preconfigured Configuration to use for the FreeMarker web config, e.g. a shared one for web and email usage, set up via FreeMarkerConfigurationFactoryBean. If this is not set, FreeMarkerConfigurationFactory's properties (inherited by this class) have to be specified.- See Also:
-
afterPropertiesSet
Initialize FreeMarkerConfigurationFactory's Configuration if not overridden by a preconfigured FreeMarker Configuration.Sets up a ClassTemplateLoader to use for loading Spring macros.
- Specified by:
afterPropertiesSet
in interfaceInitializingBean
- Throws:
IOException
freemarker.template.TemplateException
- See Also:
-
postProcessTemplateLoaders
This implementation registers an additional ClassTemplateLoader for the Spring-provided macros, added to the end of the list.- Overrides:
postProcessTemplateLoaders
in classFreeMarkerConfigurationFactory
- Parameters:
templateLoaders
- the current List of TemplateLoader instances, to be modified by a subclass- See Also:
-
getConfiguration
public freemarker.template.Configuration getConfiguration()Return the Configuration object wrapped by this bean.- Specified by:
getConfiguration
in interfaceFreeMarkerConfig
- Returns:
- the FreeMarker Configuration
-