Class FreemarkerDecoratorServlet

java.lang.Object
jakarta.servlet.GenericServlet
jakarta.servlet.http.HttpServlet
freemarker.ext.servlet.FreemarkerServlet
org.apache.struts2.sitemesh.FreemarkerDecoratorServlet
All Implemented Interfaces:
jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, Serializable

public class FreemarkerDecoratorServlet extends freemarker.ext.servlet.FreemarkerServlet

This is a SiteMesh FreeMarker view servlet.

It overrides the SiteMesh servlet to rely on the Freemarker Manager in Struts instead of creating it's own manager

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected freemarker.template.Configuration
     
    protected boolean
     
     
    protected boolean
     
    static final long
     
    protected String
     

    Fields inherited from class freemarker.ext.servlet.FreemarkerServlet

    INIT_PARAM_BUFFER_SIZE, INIT_PARAM_CLASSPATH_TLDS, INIT_PARAM_CONTENT_TYPE, INIT_PARAM_EXCEPTION_ON_MISSING_TEMPLATE, INIT_PARAM_META_INF_TLD_LOCATIONS, INIT_PARAM_NO_CACHE, INIT_PARAM_OVERRIDE_RESPONSE_CONTENT_TYPE, INIT_PARAM_OVERRIDE_RESPONSE_LOCALE, INIT_PARAM_RESPONSE_CHARACTER_ENCODING, INIT_PARAM_TEMPLATE_PATH, INIT_PARAM_VALUE_ALWAYS, INIT_PARAM_VALUE_DO_NOT_SET, INIT_PARAM_VALUE_FORCE_PREFIX, INIT_PARAM_VALUE_FROM_TEMPLATE, INIT_PARAM_VALUE_LEGACY, INIT_PARAM_VALUE_NEVER, INIT_PARAM_VALUE_WHEN_TEMPLATE_HAS_MIME_TYPE, KEY_APPLICATION, KEY_APPLICATION_PRIVATE, KEY_INCLUDE, KEY_JSP_TAGLIBS, KEY_REQUEST, KEY_REQUEST_PARAMETERS, KEY_REQUEST_PRIVATE, KEY_SESSION, META_INF_TLD_LOCATION_CLASSPATH, META_INF_TLD_LOCATION_CLEAR, META_INF_TLD_LOCATION_WEB_INF_PER_LIB_JARS, SYSTEM_PROPERTY_CLASSPATH_TLDS, SYSTEM_PROPERTY_META_INF_TLD_SOURCES

    Fields inherited from class jakarta.servlet.http.HttpServlet

    LEGACY_DO_HEAD
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected freemarker.template.Configuration
    Create the instance of the freemarker Configuration object.
    protected Locale
    deduceLocale(String templatePath, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
    Returns the locale used for the Configuration.getTemplate(String, Locale) call.
    void
    doGet(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
     
    void
    doPost(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
     
    void
     
    protected boolean
    preTemplateProcess(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, freemarker.template.Template template, freemarker.template.TemplateModel templateModel)
    Called before the execution is passed to template.process().

    Methods inherited from class freemarker.ext.servlet.FreemarkerServlet

    createDefaultClassPathTlds, createDefaultMetaInfTldSources, createDefaultObjectWrapper, createModel, createObjectWrapper, createRequestParametersHashModel, createTaglibFactory, createTemplateLoader, getConfiguration, getDefaultOverrideResponseContentType, getObjectWrapper, getTemplatePath, initializeServletContext, initializeSession, postTemplateProcess, preprocessRequest, processEnvironment, requestUrlToTemplatePath, setConfigurationDefaults

    Methods inherited from class jakarta.servlet.http.HttpServlet

    doDelete, doHead, doOptions, doPut, doTrace, getLastModified, init, service, service

    Methods inherited from class jakarta.servlet.GenericServlet

    destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, log, log

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • serialVersionUID

      public static final long serialVersionUID
      See Also:
    • freemarkerManager

      protected FreemarkerManager freemarkerManager
    • templatePath

      protected String templatePath
    • nocache

      protected boolean nocache
    • debug

      protected boolean debug
    • config

      protected freemarker.template.Configuration config
  • Constructor Details

    • FreemarkerDecoratorServlet

      public FreemarkerDecoratorServlet()
  • Method Details

    • init

      public void init() throws jakarta.servlet.ServletException
      Overrides:
      init in class freemarker.ext.servlet.FreemarkerServlet
      Throws:
      jakarta.servlet.ServletException
    • doGet

      public void doGet(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOException
      Overrides:
      doGet in class freemarker.ext.servlet.FreemarkerServlet
      Throws:
      jakarta.servlet.ServletException
      IOException
    • doPost

      public void doPost(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOException
      Overrides:
      doPost in class freemarker.ext.servlet.FreemarkerServlet
      Throws:
      jakarta.servlet.ServletException
      IOException
    • deduceLocale

      protected Locale deduceLocale(String templatePath, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
      Returns the locale used for the Configuration.getTemplate(String, Locale) call. The base implementation simply returns the locale setting of the configuration. Override this method to provide different behaviour, i.e. to use the locale indicated in the request.
      Overrides:
      deduceLocale in class freemarker.ext.servlet.FreemarkerServlet
    • createConfiguration

      protected freemarker.template.Configuration createConfiguration()

      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
      Overrides:
      createConfiguration in class freemarker.ext.servlet.FreemarkerServlet
    • preTemplateProcess

      protected boolean preTemplateProcess(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, freemarker.template.Template template, freemarker.template.TemplateModel templateModel) throws jakarta.servlet.ServletException, IOException

      Called before the execution is passed to template.process(). This is a generic hook you might use in subclasses to perform a specific action before the template is processed. By default does nothing. A typical action to perform here is to inject application-specific objects into the model root

      Example: Expose the Serlvet context path as "baseDir" for all templates:

          ((SimpleHash) data).put("baseDir", request.getContextPath() + "/");
          return true;
       
      Overrides:
      preTemplateProcess in class freemarker.ext.servlet.FreemarkerServlet
      Parameters:
      request - the actual HTTP request
      response - the actual HTTP response
      template - the template that will get executed
      Returns:
      true to process the template, false to suppress template processing.
      Throws:
      jakarta.servlet.ServletException
      IOException
      See Also:
      • FreemarkerServlet.preTemplateProcess(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, freemarker.template.Template, freemarker.template.TemplateModel)