Struts 2 Namespace configuration example and explanation

Struts 2 Namespace is a new concept to handle the multiple modules by given a namespace to each module. In addition, it can used to avoid conflicts between same action names located at different modules.

Struts 2 Namespaces are the equivalent of Struts 1 multiple modules
See this picture to understand how a URL match to Struts 2 action namespace.

namespace map url

1. Namespace configuration

Let go through a Struts 2 namescape configuration example to know how it match with URL and folder.

P.S The package “name” will not affect the result, just give a meaningful name.

struts.xml

<?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>

<package name="default" namespace="/" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package>

<package name="common" namespace="/common" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package>

<package name="user" namespace="/user" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package>

</struts>

Struts 2 action namespace map to folder structure.

namespace map folder

2. JSP View Pages

3 JSP view pages with same file name but locate at different modules.

Root – webapp/pages/welcome.jsp

Struts 2 Namespace Example


%MINIFYHTML48741c5a8b8a3df1809a5c60bcbdf1192%

 %MINIFYHTML48741c5a8b8a3df1809a5c60bcbdf1193%
Welcome - namespace = "root"

Common module – webapp/common/pages/welcome.jsp

Struts 2 Namespace Example


Welcome - namespace = "common"


User module – webapp/user/pages/welcome.jsp

Struts 2 Namespace Example


Welcome - namespace = "user"

3. Mapping – How it work?

Example 1

URL : http://localhost:8080/Struts2Example/SayWelcome.action
Will match the root namespace.

<package name="default" namespace="/" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package>

And display the content of webapp/pages/welcome.jsp.

Example 2

URL : http://localhost:8080/Struts2Example/common/SayWelcome.action
Will match the common namespace.

<package name="common" namespace="/common" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package>

And display the content of webapp/common/pages/welcome.jsp.

Example 3

URL : http://localhost:8080/Struts2Example/user/SayWelcome.action
Will match the user namespace.

<package name="user" namespace="/user" extends="struts-default">
    <action name="SayWelcome">
        <result>pages/welcome.jsp</result>
    </action>
</package>

And display the content of webapp/user/pages/welcome.jsp.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值