org.apache.struts2.views.velocity

## Class VelocityManager

- java.lang.Object
- - org.apache.struts2.views.velocity.VelocityManager

- All Implemented Interfaces:
    VelocityManagerInterface

      public class VelocityManager
      extends Object
      implements VelocityManagerInterface

  Manages the environment for Velocity result types

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `KEY_VELOCITY_STRUTS_CONTEXT`
    `protected org.apache.velocity.tools.ToolManager` | `toolboxManager` A reference to the toolbox manager.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VelocityManager()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected org.apache.velocity.context.Context` | `buildContext(ValueStack stack, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)`
    `protected org.apache.velocity.context.Context` | `buildToolContext()`
    `org.apache.velocity.context.Context` | `createContext(ValueStack stack, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)` This method is responsible for creating the standard VelocityContext used by all Struts Velocity views.
    `org.apache.velocity.tools.ToolManager` | `getToolboxManager()`
    `org.apache.velocity.app.VelocityEngine` | `getVelocityEngine()`
    `Properties` | `getVelocityProperties()`
    `void` | `init(javax.servlet.ServletContext context)` initializes the VelocityManager.
    `protected void` | `initToolbox(javax.servlet.ServletContext servletContext)` Initializes the ServletToolboxManager for this servlet's toolbox (if any).
    `Properties` | `loadConfiguration(javax.servlet.ServletContext context)` load optional velocity properties using the following loading strategy relative to the servlet context path relative to the WEB-INF directory on the classpath
    `protected org.apache.velocity.app.VelocityEngine` | `newVelocityEngine(javax.servlet.ServletContext context)` Instantiates a new VelocityEngine.
    `protected List<org.apache.velocity.VelocityContext>` | `prepareChainedContexts(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse, Map<String,Object> extraContext)` constructs contexts for chaining on this request.
    `void` | `setChainedContexts(String contexts)` allow users to specify via the struts.properties file a set of additional VelocityContexts to chain to the the StrutsVelocityContext.
    `void` | `setContainer(Container container)`
    `void` | `setCustomConfigFile(String val)`
    `void` | `setObjectFactory(ObjectFactory fac)`
    `void` | `setToolBoxLocation(String toolboxLocation)`
    `void` | `setVelocityProperties(Properties velocityProperties)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### KEY_VELOCITY_STRUTS_CONTEXT

          public static final String KEY_VELOCITY_STRUTS_CONTEXT

      See Also:
        Constant Field Values

    - #### toolboxManager

          protected org.apache.velocity.tools.ToolManager toolboxManager

      A reference to the toolbox manager.

  - ### Constructor Detail

    - #### VelocityManager

          public VelocityManager()

  - ### Method Detail

    - #### setObjectFactory

          public void setObjectFactory(ObjectFactory fac)

    - #### setContainer

          public void setContainer(Container container)

    - #### getVelocityEngine

          public org.apache.velocity.app.VelocityEngine getVelocityEngine()

      Specified by:
        `getVelocityEngine` in interface `VelocityManagerInterface`
      Returns:
        a reference to the VelocityEngine used by all Struts Velocity results except directly accessed *.vm pages (unless otherwise configured)

    - #### createContext

          public org.apache.velocity.context.Context createContext(ValueStack stack,
                                                                   javax.servlet.http.HttpServletRequest req,
                                                                   javax.servlet.http.HttpServletResponse res)

      This method is responsible for creating the standard VelocityContext used by all Struts Velocity views.
      Specified by:
        `createContext` in interface `VelocityManagerInterface`
      Parameters:
        `stack` - the current `ValueStack`
        `req` - the current HttpServletRequest
        `res` - the current HttpServletResponse
      Returns:
        a new StrutsVelocityContext

    - #### buildContext

          protected org.apache.velocity.context.Context buildContext(ValueStack stack,
                                                                     javax.servlet.http.HttpServletRequest req,
                                                                     javax.servlet.http.HttpServletResponse res)

    - #### buildToolContext

          protected org.apache.velocity.context.Context buildToolContext()

    - #### prepareChainedContexts

          protected List<org.apache.velocity.VelocityContext> prepareChainedContexts(javax.servlet.http.HttpServletRequest servletRequest,
                                                                                     javax.servlet.http.HttpServletResponse servletResponse,
                                                                                     Map<String,Object> extraContext)

      constructs contexts for chaining on this request. This method does not perform any initialization of the contexts. All that must be done in the context itself.
      Parameters:
        `servletRequest` - the servlet request object
        `servletResponse` - the servlet response object
        `extraContext` - map with extra context
      Returns:
        a List of contexts to chain or an empty list

    - #### init

          public void init(javax.servlet.ServletContext context)

      initializes the VelocityManager. this should be called during the initialization process, say by ServletDispatcher. this may be called multiple times safely although calls beyond the first won't do anything
      Specified by:
        `init` in interface `VelocityManagerInterface`
      Parameters:
        `context` - the current servlet context

    - #### loadConfiguration

          public Properties loadConfiguration(javax.servlet.ServletContext context)

      load optional velocity properties using the following loading strategy
      - relative to the servlet context path
      - relative to the WEB-INF directory
      - on the classpath
      Parameters:
        `context` - the current ServletContext. may not be null
      Returns:
        the optional properties if struts.velocity.configfile was specified, an empty Properties file otherwise

    - #### setCustomConfigFile

          public void setCustomConfigFile(String val)

    - #### setToolBoxLocation

          public void setToolBoxLocation(String toolboxLocation)

    - #### getToolboxManager

          public org.apache.velocity.tools.ToolManager getToolboxManager()

    - #### setChainedContexts

          public void setChainedContexts(String contexts)

      allow users to specify via the struts.properties file a set of additional VelocityContexts to chain to the the StrutsVelocityContext. The intent is to allow these contexts to store helper objects that the ui developer may want access to. Examples of reasonable VelocityContexts would be an IoCVelocityContext, a SpringReferenceVelocityContext, and a ToolboxVelocityContext
      Parameters:
        `contexts` - comma separated velocity context's

    - #### initToolbox

          protected void initToolbox(javax.servlet.ServletContext servletContext)

      Initializes the ServletToolboxManager for this servlet's toolbox (if any).

    - #### newVelocityEngine

          protected org.apache.velocity.app.VelocityEngine newVelocityEngine(javax.servlet.ServletContext context)

      Instantiates a new VelocityEngine.

      The following is the default Velocity configuration

            resource.loader = file, class
            file.resource.loader.path = real path of webapp
            class.resource.loader.description = Velocity Classpath Resource Loader
            class.resource.loader.class = org.apache.struts2.views.velocity.StrutsResourceLoader

      this default configuration can be overridden by specifying a struts.velocity.configfile property in the struts.properties file. the specified config file will be searched for in the following order:

      - relative to the servlet context path
      - relative to the WEB-INF directory
      - on the classpath
      Parameters:
        `context` - the current ServletContext. may not be null
      Returns:
        the new velocity engine

    - #### getVelocityProperties

          public Properties getVelocityProperties()

      Returns:
        the velocityProperties

    - #### setVelocityProperties

          public void setVelocityProperties(Properties velocityProperties)

      Parameters:
        `velocityProperties` - the velocityProperties to set

Copyright © 2000–2025 Apache Software Foundation. All rights reserved.