我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

Apache Struts 2的命名空间实战

作者:chszs,版权所有,未经同意,不得转载。博主主页:http://blog.csdn.net/chszs

Apache Struts 2的命名空间是一个新概念,它通过为每一个模块分配一个命名空间从而实现多模块的处理。另外,它解决了不同模块下的相同Acion名的名字冲突的问题。
从下面的图我们可以理解URL是怎样匹配Struts 2命名空间的。
这里写图片描述

一、命名空间的配置

下面我们通过Struts2的命名空间配置实例来说明它是怎样匹配URL和目录的。要说明一点,包名(即package name=”default”)不影响URL匹配结果,它仅仅是一个有意义的名字。
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命名空间映射到目录的结构图如下:
这里写图片描述

二、JSP页面

我放了三个相同文件名的JSP文件,但是它们分别位于不同的模块。

1)Root -> webapp/pages/welcome.jsp
2)Common module -> webapp/common/pages/welcome.jsp
3)User module -> webapp/user/pages/welcome.jsp

三、工作机制

运行项目,我们分别访问不同的URL,即可实现对不同的命名空间进行访问。

例子1
URL : http://localhost:8080/Struts2Example/SayWelcome.action
这将匹配root命名空间。

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

这里写图片描述
显示的是webapp/pages/welcome.jsp的内容。

例子2
URL : http://localhost:8080/Struts2Example/common/SayWelcome.action
这将匹配common命名空间。

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

这里写图片描述
显示的是webapp/common/pages/welcome.jsp的内容。

例子3
URL : http://localhost:8080/Struts2Example/user/SayWelcome.action
这将匹配user命名空间。

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

这里写图片描述
显示的是webapp/user/pages/welcome.jsp的内容。

 

我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为1000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版百度优化、名注册、主机空间、手机网站建设公众号开发小程序制作、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 13820372851,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13820372851

上班时间

周一到周五

公司电话

022-26262675

二维码
线
在线留言