Package org.apache.struts2.views.velocity

# Class StrutsVelocityManager

java.lang.Object
org.apache.struts2.views.velocity.StrutsVelocityManager

All Implemented Interfaces:
  `VelocityManager`

public class StrutsVelocityManager extends Object implements VelocityManager
Manages the environment for Velocity result types

Since:
  7.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_CONFIG_FILE`
  `static final String`
  `KEY_VELOCITY_STRUTS_CONTEXT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StrutsVelocityManager()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected org.apache.velocity.context.Context`
  `buildContext(ValueStack stack, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res)`
  `org.apache.velocity.context.Context`
  `createContext(ValueStack stack, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res)`
  This method is responsible for creating the standard VelocityContext used by all Struts Velocity views.
  `org.apache.velocity.app.VelocityEngine`
  `getVelocityEngine()`
  `Properties`
  `getVelocityProperties()`
  `VelocityTools`
  `getVelocityTools()`
  `void`
  `init(jakarta.servlet.ServletContext context)`
  initializes the StrutsVelocityManager.
  `protected Properties`
  `loadConfiguration(jakarta.servlet.ServletContext context)`
  `protected org.apache.velocity.app.VelocityEngine`
  `newVelocityEngine(jakarta.servlet.ServletContext context)`
  Instantiates a new VelocityEngine.
  `protected List<org.apache.velocity.VelocityContext>`
  `prepareChainedContexts(jakarta.servlet.http.HttpServletRequest servletRequest, jakarta.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 StrutsVelocityContext.
  `void`
  `setContainer(Container container)`
  `void`
  `setCustomConfigFile(String customConfigFile)`
  `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 Details

  - ### DEFAULT_CONFIG_FILE

    public static final String DEFAULT_CONFIG_FILE
    See Also:
      - Constant Field Values

  - ### KEY_VELOCITY_STRUTS_CONTEXT

    public static final String KEY_VELOCITY_STRUTS_CONTEXT
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### StrutsVelocityManager

    public StrutsVelocityManager()

- ## Method Details

  - ### 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 `VelocityManager`
    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, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res)
    This method is responsible for creating the standard VelocityContext used by all Struts Velocity views.
    Specified by:
      `createContext` in interface `VelocityManager`
    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, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res)

  - ### prepareChainedContexts

    protected List<org.apache.velocity.VelocityContext> prepareChainedContexts(jakarta.servlet.http.HttpServletRequest servletRequest, jakarta.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(jakarta.servlet.ServletContext context)
    initializes the StrutsVelocityManager. 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 `VelocityManager`
    Parameters:
      `context` - the current servlet context

  - ### loadConfiguration

    protected Properties loadConfiguration(jakarta.servlet.ServletContext context)

  - ### setCustomConfigFile

    public void setCustomConfigFile(String customConfigFile)

  - ### setToolBoxLocation

    public void setToolBoxLocation(String toolboxLocation)

  - ### getVelocityTools

    public VelocityTools getVelocityTools()

  - ### setChainedContexts

    public void setChainedContexts(String contexts)
    Allow users to specify via the struts.properties file a set of additional VelocityContexts to chain to 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

  - ### newVelocityEngine

    protected org.apache.velocity.app.VelocityEngine newVelocityEngine(jakarta.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