Class FreemarkerManager
java.lang.Object
org.apache.struts2.views.freemarker.FreemarkerManager
Static Configuration Manager for the FreemarkerResult's configuration
Possible extension points are:
- createConfiguration method
- loadSettings method
- createTemplateLoader method
- populateContext method
createConfiguration method
Create a freemarker Configuration.
loadSettings method
Load freemarker settings, default to freemarker.properties (if found in classpath)
createTemplateLoader method
create a freemarker TemplateLoader that loads freemarker template in the following order:
- path defined in ServletContext init parameter named 'templatePath' or 'TemplatePath' (must be an absolute path)
- webapp classpath
- struts's static folder (under [STRUT2_SOURCE]/org/apache/struts2/static/
populateContext method
populate the created model.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanstatic final Stringprotected booleanprotected freemarker.template.Configurationstatic final Stringprotected Stringprotected booleanstatic final Stringprotected Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected intprotected booleanprotected booleanprotected Map<String,TagLibraryModelProvider> protected Stringprotected Stringprotected freemarker.template.ObjectWrapper -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSetting(String name, String value) protected ScopesHashModelbuildScopesHashModel(jakarta.servlet.ServletContext servletContext, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, freemarker.template.ObjectWrapper wrapper, ValueStack stack) buildTemplateModel(ValueStack stack, Object action, jakarta.servlet.ServletContext servletContext, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, freemarker.template.ObjectWrapper wrapper) protected voidconfigureTemplateLoader(freemarker.cache.TemplateLoader templateLoader) Sets the Freemarker Configuration's template loader with the FreemarkerThemeTemplateLoader at the top.protected freemarker.template.ConfigurationcreateConfiguration(jakarta.servlet.ServletContext servletContext) Create the instance of the freemarker Configuration object.protected freemarker.template.ObjectWrappercreateObjectWrapper(jakarta.servlet.ServletContext servletContext) protected freemarker.cache.TemplateLoadercreateTemplateLoader(jakarta.servlet.ServletContext servletContext, String templatePath) Create the template loader.freemarker.template.Configurationfreemarker.template.ConfigurationgetConfiguration(jakarta.servlet.ServletContext servletContext) booleangetDebug()protected freemarker.template.VersiongetFreemarkerVersion(jakarta.servlet.ServletContext servletContext) booleanbooleanfreemarker.template.ObjectWrappervoidinit(jakarta.servlet.ServletContext servletContext) protected voidloadSettings(jakarta.servlet.ServletContext servletContext) Load the settings from the /freemarker.properties file on the classpathprotected voidpopulateContext(ScopesHashModel model, ValueStack stack, Object action, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) voidvoidsetContainer(Container container) voidsetEncoding(String encoding) voidsetFileManagerFactory(FileManagerFactory fileManagerFactory) voidsetMruMaxStrongSize(String size) voidsetTemplateUpdateDelay(String delay) voidsetThemeTemplateLoader(FreemarkerThemeTemplateLoader themeTemplateLoader) voidsetWrapperAltMap(String val)
-
Field Details
-
INITPARAM_TEMPLATE_PATH
- See Also:
-
INITPARAM_NOCACHE
- See Also:
-
INITPARAM_CONTENT_TYPE
- See Also:
-
DEFAULT_CONTENT_TYPE
- See Also:
-
INITPARAM_DEBUG
- See Also:
-
KEY_REQUEST
- See Also:
-
KEY_SESSION
- See Also:
-
KEY_APPLICATION
- See Also:
-
KEY_APPLICATION_PRIVATE
- See Also:
-
KEY_JSP_TAGLIBS
- See Also:
-
ATTR_TEMPLATE_MODEL
- See Also:
-
KEY_REQUEST_PARAMETERS_STRUTS
- See Also:
-
EXPIRATION_DATE
-
CONFIG_SERVLET_CONTEXT_KEY
- See Also:
-
KEY_EXCEPTION
- See Also:
-
templatePath
-
nocache
protected boolean nocache -
debug
protected boolean debug -
config
protected freemarker.template.Configuration config -
wrapper
protected freemarker.template.ObjectWrapper wrapper -
contentType
-
noCharsetInContentType
protected boolean noCharsetInContentType -
encoding
-
altMapWrapper
protected boolean altMapWrapper -
cacheBeanWrapper
protected boolean cacheBeanWrapper -
mruMaxStrongSize
protected int mruMaxStrongSize -
templateUpdateDelay
-
tagLibraries
-
-
Constructor Details
-
FreemarkerManager
public FreemarkerManager()
-
-
Method Details
-
setEncoding
-
setWrapperAltMap
-
setCacheBeanWrapper
-
setMruMaxStrongSize
-
setTemplateUpdateDelay
-
setContainer
-
setFileManagerFactory
-
setThemeTemplateLoader
-
getNoCharsetInContentType
public boolean getNoCharsetInContentType() -
getTemplatePath
-
getNocache
public boolean getNocache() -
getDebug
public boolean getDebug() -
getConfig
public freemarker.template.Configuration getConfig() -
getWrapper
public freemarker.template.ObjectWrapper getWrapper() -
getContentType
-
getConfiguration
public freemarker.template.Configuration getConfiguration(jakarta.servlet.ServletContext servletContext) -
init
public void init(jakarta.servlet.ServletContext servletContext) throws freemarker.template.TemplateException - Throws:
freemarker.template.TemplateException
-
configureTemplateLoader
protected void configureTemplateLoader(freemarker.cache.TemplateLoader templateLoader) Sets the Freemarker Configuration's template loader with the FreemarkerThemeTemplateLoader at the top.- Parameters:
templateLoader- the template loader- See Also:
-
createConfiguration
protected freemarker.template.Configuration createConfiguration(jakarta.servlet.ServletContext servletContext) throws freemarker.template.TemplateException Create the instance of the freemarker Configuration object.this implementation
- obtains the default configuration from Configuration.getDefaultConfiguration()
- sets up template loading from a ClassTemplateLoader and a WebappTemplateLoader
- sets up the object wrapper to be the BeansWrapper
- loads settings from the classpath file /freemarker.properties
- Parameters:
servletContext- the servlet context- Returns:
- a instance of the freemarker configuration object
- Throws:
freemarker.template.TemplateException- in case of errors during creating the configuration
-
getFreemarkerVersion
protected freemarker.template.Version getFreemarkerVersion(jakarta.servlet.ServletContext servletContext) -
buildScopesHashModel
protected ScopesHashModel buildScopesHashModel(jakarta.servlet.ServletContext servletContext, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, freemarker.template.ObjectWrapper wrapper, ValueStack stack) -
createObjectWrapper
protected freemarker.template.ObjectWrapper createObjectWrapper(jakarta.servlet.ServletContext servletContext) -
createTemplateLoader
protected freemarker.cache.TemplateLoader createTemplateLoader(jakarta.servlet.ServletContext servletContext, String templatePath) Create the template loader. The default implementation will create aClassTemplateLoaderif the template path starts with "class://", aFileTemplateLoaderif the template path starts with "file://", and aWebappTemplateLoaderotherwise.- Parameters:
servletContext- the servlet pathtemplatePath- the template path to create a loader for- Returns:
- a newly created template loader
-
loadSettings
protected void loadSettings(jakarta.servlet.ServletContext servletContext) Load the settings from the /freemarker.properties file on the classpath- Parameters:
servletContext- the servlet context- See Also:
-
for the definition of valid settings
-
addSetting
- Throws:
freemarker.template.TemplateException
-
buildTemplateModel
public ScopesHashModel buildTemplateModel(ValueStack stack, Object action, jakarta.servlet.ServletContext servletContext, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, freemarker.template.ObjectWrapper wrapper) -
populateContext
protected void populateContext(ScopesHashModel model, ValueStack stack, Object action, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
-