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 boolean
static final String
protected boolean
protected freemarker.template.Configuration
static final String
protected String
protected boolean
static final String
protected String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
protected int
protected boolean
protected boolean
protected Map<String,
TagLibraryModelProvider> protected String
protected String
protected freemarker.template.ObjectWrapper
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSetting
(String name, String value) protected ScopesHashModel
buildScopesHashModel
(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 void
configureTemplateLoader
(freemarker.cache.TemplateLoader templateLoader) Sets the Freemarker Configuration's template loader with the FreemarkerThemeTemplateLoader at the top.protected freemarker.template.Configuration
createConfiguration
(jakarta.servlet.ServletContext servletContext) Create the instance of the freemarker Configuration object.protected freemarker.template.ObjectWrapper
createObjectWrapper
(jakarta.servlet.ServletContext servletContext) protected freemarker.cache.TemplateLoader
createTemplateLoader
(jakarta.servlet.ServletContext servletContext, String templatePath) Create the template loader.freemarker.template.Configuration
freemarker.template.Configuration
getConfiguration
(jakarta.servlet.ServletContext servletContext) boolean
getDebug()
protected freemarker.template.Version
getFreemarkerVersion
(jakarta.servlet.ServletContext servletContext) boolean
boolean
freemarker.template.ObjectWrapper
void
init
(jakarta.servlet.ServletContext servletContext) protected void
loadSettings
(jakarta.servlet.ServletContext servletContext) Load the settings from the /freemarker.properties file on the classpathprotected void
populateContext
(ScopesHashModel model, ValueStack stack, Object action, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) void
void
setContainer
(Container container) void
setEncoding
(String encoding) void
setFileManagerFactory
(FileManagerFactory fileManagerFactory) void
setMruMaxStrongSize
(String size) void
setTemplateUpdateDelay
(String delay) void
setThemeTemplateLoader
(FreemarkerThemeTemplateLoader themeTemplateLoader) void
setWrapperAltMap
(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 aClassTemplateLoader
if the template path starts with "class://", aFileTemplateLoader
if the template path starts with "file://", and aWebappTemplateLoader
otherwise.- 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)
-