Struts 2 Multiple Namespace Example
Struts 2 namespace provides a functionality to resolve the conflict between same actions names located at different modules. We can define the multiple namespaces in core configuration file (struts.xml) of package element.
Have loop of URL, that sends the request to Struts 2 application.
Namespace Configuration
Define the multiple packages inside the struts.xml identified by different namespaces.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="welcome">
<result>/index.jsp</result>
</action>
</package>
<package name="default1" namespace="/first" extends="struts-default">
<action name="WelcomeFirst">
<result>/first.jsp</result>
</action>
</package>
<package name="default2" namespace="/second" extends="struts-default">
<action name="WelcomeSecond">
<result>/second.jsp</result>
</action>
</package>
</struts>
View Components
In my demo, I have created two namespaces which redirect you on the respective results.
index.jsp is the default page mapped with root (/)
namespace and action="welcome"
<html>
<head>
<title>Namespace</title>
</head>
<body>
<h1>Struts 2 Multiple Namespace Configuration Example</h1>
<p>Click Me</p>
<ol>
<li><a href="welcome">Default</a></li>
<li><a href="first/WelcomeFirst">First</a></li>
<li><a href="second/WelcomeSecond">Second</a></li>
</ol>
</body>
</html>
first.jsp is the first page and it is mapped with first
namespace and action="WelcomeFirst"
<html>
<head>
<title>First Namespace</title>
</head>
<body>
<h2>Welcome to First Namespace</h2>
</body>
</html>
second.jsp is the second page and it is mapped with second
namespace and action="WelcomeSecond"
<html>
<head>
<title>Second Namespace</title>
</head>
<body>
<h2>Welcome to Second Namespace</h2>
</body>
</html>
Project Structure in Eclipse
Download Source Code: struts2-multiple-namespace-example.zip