Yes, there are two complementary approaches. We can include other struts.xml
-format files from a bootstrap struts.xml
file, or we can package a struts.xml
files in a JAR. Or both.
By Include
See the <include>
element documentation.
You can use <include>
elements in your struts
Sure, that's what the <include> element is for. Most {{action.xml} files already have one or more include elements:
...
<xwork>
<include file="action-default.xml"/>
<include file="config-browser.xml"/>
<package name="default" extends="action-default">
....
</package>
<include file="other.xml"/>
</xwork>
The first include
element tells the framework to load the action-default.xml
, which it wil find in the struts-action.jar
file. The action-default.xml
file defines the "standard" interceptor and result definitions.
You can put your own <include> elements in your action.xml
interchangeably with <package>
elements. They The configuration objects will be loaded in the order of appearance. The framework reads the configuration from top to bottom and adds objects as they are referenced.@see com.opensymphony.xwork.config.ConfigurationManager
@see com.opensymphony.xwork.config.Configuration
@see com.opensymphony.xwork.config.impl.DefaultConfiguration
@see com.opensymphony.xwork.config.ConfigurationProvider
@see com.opensymphony.xwork.config.providers.XmlConfigurationProvider
By JAR
A "module" can be added to an application by placing a struts.xml
and related classes into a JAR on the classpath. FreeMarker and Velocity templates can also be provided by JAR, making it possible to distribution a module in a single, self-contained JAR that is automatically configured on startup.