Class ViewToolManager

  • Direct Known Subclasses:
    VelocityView

    public class ViewToolManager
    extends ToolManager
    Manages tools for web applications. This simplifies the process of getting a tool-populated Velocity context for merging with templates. It allows for both direct configuration by passing in a FactoryConfiguration or having one in the ServletContext attributes under ServletUtils.CONFIGURATION_KEY, as well as configuration via a tools.xml or tools.properties file in either the classpath or the local file system.
    Version:
    $Id: ToolManager.java 511959 2007-02-26 19:24:39Z nbubna $
    Author:
    Nathan Bubna
    • Field Detail

      • DEFAULT_TOOLBOX_KEY

        public static final String DEFAULT_TOOLBOX_KEY
      • servletContext

        protected javax.servlet.ServletContext servletContext
    • Constructor Detail

      • ViewToolManager

        public ViewToolManager​(javax.servlet.ServletContext app)
        Constructs an instance already configured to use the {@link ConfigurationUtils#getAutoLoaded()()} configuration and any configuration specified via a "org.apache.velocity.tools" system property.
      • ViewToolManager

        public ViewToolManager​(javax.servlet.ServletContext app,
                               boolean includeDefaults)
      • ViewToolManager

        public ViewToolManager​(javax.servlet.ServletContext app,
                               boolean autoConfig,
                               boolean includeDefaults)
    • Method Detail

      • autoConfigure

        public void autoConfigure​(boolean includeDefaults)
        Overrides:
        autoConfigure in class ToolManager
      • setPublishToolboxes

        public void setPublishToolboxes​(boolean publish)
        Sets whether or not the creation of a new ViewToolContext should make the various scoped Toolbox instances available publically via the HttpServletRequest/HttpSession/ServletContext attributes or simply add the Toolbox instances directly to the context. It is important to note that if this is set to false, session-scoped tools will NOT be stored in the session, but instead be recreated for each request.
        See Also:
        publishToolboxes, setToolboxKey(java.lang.String)
      • getPublishToolboxes

        public boolean getPublishToolboxes()
      • getToolboxKey

        public String getToolboxKey()
      • setCreateSession

        public void setCreateSession​(boolean create)
        Sets whether or not a new HttpSession should be created when there are session scoped tools to be stored in the session, but no session has been created yet.
        See Also:
        publishToolboxes
      • getCreateSession

        public boolean getCreateSession()
      • updateGlobalProperties

        protected void updateGlobalProperties()
        Checks the internal ToolboxFactory for any changes to the createSession or publishToolboxes settings.
      • publishApplicationTools

        protected void publishApplicationTools()
        Publish Scope.APPLICATION Toolbox.
      • unpublishApplicationTools

        protected void unpublishApplicationTools()
        Removes any published Scope.APPLICATION Toolbox.
      • createContext

        public ViewToolContext createContext​(javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response)
      • prepareContext

        public void prepareContext​(ViewToolContext context,
                                   javax.servlet.http.HttpServletRequest request)
      • hasSessionTools

        protected boolean hasSessionTools()
      • getSessionToolbox

        protected Toolbox getSessionToolbox()
      • publishToolboxes

        public void publishToolboxes​(javax.servlet.ServletRequest request)
        Places the Scope.REQUEST Toolbox (if any) into the ServletRequest attributes using Toolbox.KEY as the key.
      • publishToolboxes

        public void publishToolboxes​(javax.servlet.http.HttpServletRequest request)
        Places the Scope.REQUEST Toolbox (if any) into the HttpServletRequest attributes using Toolbox.KEY as the key, places the Scope.SESSION Toolbox (if any) into the attributes of the HttpSession (if any) then ensures that the Scope.APPLICATION Toolbox (if any) has been placed in the ServletContext attributes.