Class FreeMarkerConfigurer
- All Implemented Interfaces:
Aware,InitializingBean,ResourceLoaderAware,FreeMarkerConfig
This bean must be included in the application context of any application
using FreeMarkerView. 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.
Note that you can also refer to a pre-configured FreeMarker Configuration instance 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:
- 5.0
- Author:
- Rossen Stoyanchev
-
Field Summary
Fields inherited from class org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInitialize FreeMarkerConfigurationFactory's Configuration if not overridden by a pre-configured FreeMarker Configuration.freemarker.template.ConfigurationReturn the Configuration object wrapped by this bean.protected voidpostProcessTemplateLoaders(List<freemarker.cache.TemplateLoader> templateLoaders) This implementation registers an additional ClassTemplateLoader for the Spring-provided macros, added to the end of the list.voidsetConfiguration(freemarker.template.Configuration configuration) Set a pre-configured 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, setTemplateLoaderPathsMethods 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
-
FreeMarkerConfigurer
public FreeMarkerConfigurer()
-
-
Method Details
-
setConfiguration
public void setConfiguration(freemarker.template.Configuration configuration) Set a pre-configured Configuration to use for the FreeMarker web config, e.g. a shared one for web and email usage. If this is not set, FreeMarkerConfigurationFactory's properties (inherited by this class) have to be specified. -
afterPropertiesSet
Initialize FreeMarkerConfigurationFactory's Configuration if not overridden by a pre-configured FreeMarker Configuration.Sets up a ClassTemplateLoader to use for loading Spring macros.
- Specified by:
afterPropertiesSetin interfaceInitializingBean- Throws:
IOExceptionfreemarker.template.TemplateException- See Also:
-
postProcessTemplateLoaders
This implementation registers an additional ClassTemplateLoader for the Spring-provided macros, added to the end of the list.- Overrides:
postProcessTemplateLoadersin 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:
getConfigurationin interfaceFreeMarkerConfig- Returns:
- the FreeMarker Configuration
-