The objective of this tutorial is to teach how to create Struts application modules and break monolithic struts
module into pieces
1. If you already have a Struts application, then this tutorial will show
you how to add a new module to your existing application.
2. The index page belongs to the default module. From the index
page, we will provide a link to go
to module2. Module 2 will consist of a two dummy pages that can
call each other and also have a
link to return to default module.
- Change the web.xml to define a new module named xyz as
follows:
<init-param>
<param-name>config/xyz</param-name>
<param-value>/WEB-INF/struts-config-xyz.xml</param-value>
</init-param>
- Copy over the struts-config.xml to create a new struts-config-xyz.xml
- Create a empty XYZ Message Resources
- Clean up the struts-config-xyz.xml to retain only empty
blocks for form-beans, action
mappings etc. Add the message resource bundle definition to struts-config-xyz.xml.
- Add SwitchAction to struts-config.xml & struts-config-xyz.xml
as follows:
<action path="/switch"
type="org.apache.struts.actions.SwitchAction"/>
- Create a folder called xyz under the src/web directory.
Create two jsps: xyz-page1.jsp & xyzpage2.jsp (Copy over index.jsp & change contents)
- Add bean:message for titles and define them in
XYZMessageResources
- In xyz-page1.jsp, add link to navigate to xyz-page2.jsp
(Forward Action via html:link)
- In xyz-page2.jsp, add link to navigate to xyz-page1.jsp
(Forward Action via html:link)
- In index.jsp, a link is added to go to xyz-page1.jsp in xyz
module as follows:
<html:link forward="gotoXYZModule">Go
to XYZ Module</html:link>
- In xyz-page1.jsp, add a link to go to index.jsp in default
module
<html:link forward="gotoDefaultModule">Go
to Default Module</html:link>
- Add global forward in struts-config.xml to go to
xyz-page1.jsp
<forward name="gotoXYZModule"
path="/switch.do?page=/page1.do&prefix=/xyz"
/>
- Add global forward in struts-config-xyz.xml to go to
index.jsp
<forward name="gotoDefaultModule"
path="/switch.do?page=/showCustomerSearchForm.do&prefix="/>