org.apache.struts2.views.freemarker
Class FreemarkerManager

java.lang.Object
  extended by org.apache.struts2.views.freemarker.FreemarkerManager

public class FreemarkerManager
extends java.lang.Object

Static Configuration Manager for the FreemarkerResult's configuration

Possible extension points are :-

createConfiguration method
Create a freemarker Configuration.

loadSettings method
Load freemarker settings, default to freemarker.properties (if found in classpath)

getTemplateLoader method
create a freemarker TemplateLoader that loads freemarker template in the following order :-

  1. path defined in ServletContext init parameter named 'templatePath' or 'TemplatePath' (must be an absolute path)
  2. webapp classpath
  3. struts's static folder (under [STRUT2_SOURCE]/org/apache/struts2/static/

populateContext method
populate the created model.


Field Summary
static java.lang.String CONFIG_SERVLET_CONTEXT_KEY
           
static java.lang.String KEY_APPLICATION
           
static java.lang.String KEY_EXCEPTION
           
static java.lang.String KEY_JSP_TAGLIBS
           
static java.lang.String KEY_REQUEST_MODEL
           
static java.lang.String KEY_REQUEST_PARAMETER_MODEL
           
static java.lang.String KEY_SESSION_MODEL
           
 
Constructor Summary
FreemarkerManager()
           
 
Method Summary
protected  ScopesHashModel buildScopesHashModel(javax.servlet.ServletContext servletContext, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, freemarker.template.ObjectWrapper wrapper, com.opensymphony.xwork2.util.ValueStack stack)
           
 freemarker.template.SimpleHash buildTemplateModel(com.opensymphony.xwork2.util.ValueStack stack, java.lang.Object action, javax.servlet.ServletContext servletContext, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, freemarker.template.ObjectWrapper wrapper)
           
protected  freemarker.template.Configuration createConfiguration(javax.servlet.ServletContext servletContext)
          Create the instance of the freemarker Configuration object.
 freemarker.template.Configuration getConfiguration(javax.servlet.ServletContext servletContext)
           
static FreemarkerManager getInstance()
          To allow for custom configuration of freemarker, sublcass this class "ConfigManager" and set the Struts configuration property struts.freemarker.configmanager.classname to the fully qualified classname.
protected  freemarker.ext.beans.BeansWrapper getObjectWrapper()
           
protected  freemarker.cache.TemplateLoader getTemplateLoader(javax.servlet.ServletContext servletContext)
          The default template loader is a MultiTemplateLoader which includes a ClassTemplateLoader and a WebappTemplateLoader (and a FileTemplateLoader depending on the init-parameter 'TemplatePath').
protected  void loadSettings(javax.servlet.ServletContext servletContext, freemarker.template.Configuration configuration)
          Load the settings from the /freemarker.properties file on the classpath
protected  void populateContext(ScopesHashModel model, com.opensymphony.xwork2.util.ValueStack stack, java.lang.Object action, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONFIG_SERVLET_CONTEXT_KEY

public static final java.lang.String CONFIG_SERVLET_CONTEXT_KEY
See Also:
Constant Field Values

KEY_EXCEPTION

public static final java.lang.String KEY_EXCEPTION
See Also:
Constant Field Values

KEY_APPLICATION

public static final java.lang.String KEY_APPLICATION
See Also:
Constant Field Values

KEY_REQUEST_MODEL

public static final java.lang.String KEY_REQUEST_MODEL
See Also:
Constant Field Values

KEY_SESSION_MODEL

public static final java.lang.String KEY_SESSION_MODEL
See Also:
Constant Field Values

KEY_JSP_TAGLIBS

public static final java.lang.String KEY_JSP_TAGLIBS
See Also:
Constant Field Values

KEY_REQUEST_PARAMETER_MODEL

public static final java.lang.String KEY_REQUEST_PARAMETER_MODEL
See Also:
Constant Field Values
Constructor Detail

FreemarkerManager

public FreemarkerManager()
Method Detail

getInstance

public static final FreemarkerManager getInstance()
To allow for custom configuration of freemarker, sublcass this class "ConfigManager" and set the Struts configuration property struts.freemarker.configmanager.classname to the fully qualified classname.

This allows you to override the protected methods in the ConfigMangaer to programatically create your own Configuration instance


getConfiguration

public final freemarker.template.Configuration getConfiguration(javax.servlet.ServletContext servletContext)
                                                         throws freemarker.template.TemplateException
Throws:
freemarker.template.TemplateException

buildScopesHashModel

protected ScopesHashModel buildScopesHashModel(javax.servlet.ServletContext servletContext,
                                               javax.servlet.http.HttpServletRequest request,
                                               javax.servlet.http.HttpServletResponse response,
                                               freemarker.template.ObjectWrapper wrapper,
                                               com.opensymphony.xwork2.util.ValueStack stack)

populateContext

protected void populateContext(ScopesHashModel model,
                               com.opensymphony.xwork2.util.ValueStack stack,
                               java.lang.Object action,
                               javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response)

getObjectWrapper

protected freemarker.ext.beans.BeansWrapper getObjectWrapper()

getTemplateLoader

protected freemarker.cache.TemplateLoader getTemplateLoader(javax.servlet.ServletContext servletContext)
The default template loader is a MultiTemplateLoader which includes a ClassTemplateLoader and a WebappTemplateLoader (and a FileTemplateLoader depending on the init-parameter 'TemplatePath').

The ClassTemplateLoader will resolve fully qualified template includes that begin with a slash. for example /com/company/template/common.ftl

The WebappTemplateLoader attempts to resolve templates relative to the web root folder


createConfiguration

protected freemarker.template.Configuration createConfiguration(javax.servlet.ServletContext servletContext)
                                                         throws freemarker.template.TemplateException
Create the instance of the freemarker Configuration object.

this implementation

Parameters:
servletContext -
Throws:
freemarker.template.TemplateException

loadSettings

protected void loadSettings(javax.servlet.ServletContext servletContext,
                            freemarker.template.Configuration configuration)
Load the settings from the /freemarker.properties file on the classpath

See Also:
for the definition of valid settings

buildTemplateModel

public freemarker.template.SimpleHash buildTemplateModel(com.opensymphony.xwork2.util.ValueStack stack,
                                                         java.lang.Object action,
                                                         javax.servlet.ServletContext servletContext,
                                                         javax.servlet.http.HttpServletRequest request,
                                                         javax.servlet.http.HttpServletResponse response,
                                                         freemarker.template.ObjectWrapper wrapper)


Copyright © 2000-2006 Apache Software Foundation. All Rights Reserved.