Class VelocityManager
java.lang.Object
org.apache.struts2.views.velocity.VelocityManager
- All Implemented Interfaces:
VelocityManagerInterface
Manages the environment for Velocity result types
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
protected org.apache.velocity.tools.ToolManager
A reference to the toolbox manager. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.velocity.context.Context
buildContext
(ValueStack stack, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res) protected org.apache.velocity.context.Context
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.tools.ToolManager
org.apache.velocity.app.VelocityEngine
void
init
(jakarta.servlet.ServletContext context) initializes the VelocityManager.protected void
initToolbox
(jakarta.servlet.ServletContext servletContext) Initializes the ServletToolboxManager for this servlet's toolbox (if any).loadConfiguration
(jakarta.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 classpathprotected 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 the StrutsVelocityContext.void
setContainer
(Container container) void
void
void
setToolBoxLocation
(String toolboxLocation) void
setVelocityProperties
(Properties velocityProperties)
-
Field Details
-
KEY_VELOCITY_STRUTS_CONTEXT
- See Also:
-
toolboxManager
protected org.apache.velocity.tools.ToolManager toolboxManagerA reference to the toolbox manager.
-
-
Constructor Details
-
VelocityManager
public VelocityManager()
-
-
Method Details
-
setObjectFactory
-
setContainer
-
getVelocityEngine
public org.apache.velocity.app.VelocityEngine getVelocityEngine()- Specified by:
getVelocityEngine
in interfaceVelocityManagerInterface
- 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 interfaceVelocityManagerInterface
- Parameters:
stack
- the currentValueStack
req
- the current HttpServletRequestres
- 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) -
buildToolContext
protected org.apache.velocity.context.Context buildToolContext() -
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 objectservletResponse
- the servlet response objectextraContext
- 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 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 interfaceVelocityManagerInterface
- Parameters:
context
- the current servlet context
-
loadConfiguration
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
-
setToolBoxLocation
-
getToolboxManager
public org.apache.velocity.tools.ToolManager getToolboxManager() -
setChainedContexts
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(jakarta.servlet.ServletContext servletContext) Initializes the ServletToolboxManager for this servlet's toolbox (if any). -
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
- Returns:
- the velocityProperties
-
setVelocityProperties
- Parameters:
velocityProperties
- the velocityProperties to set
-