首页 > 其他 > 详细

struts2中配置文件里的package元素和namespace属性的区别?

时间:2015-10-18 02:11:46      阅读:274      评论:0      收藏:0      [点我收藏+]

下面是一个struts.xml的配置文件

<struts>
    <package name="example" namespace="/example" extends="struts-default">
    	<action name="hello" class="com.yanln.test.action.HelloWorld">
    		<result name="success">success.jsp</result>
    	</action>
    </package>
</struts>

?

struts2中采用<package>元素来管理Action,通过它来管理一组业务功能相关的action,元素中的name属性用来标识包的名称,不同的包中可以有同名的action, 但是这些同名的action在访问时怎么来区分访问的是哪个包中的action呢?

?

首先:访问时通过package元素中的name属性值来区分是不起作用的,因为package元素只能在配置文件中来表示不同模块的action属于不同的包,至于怎么访问到不同模块下的action是由namespace来决定的。

?

其次:重点说下namespace,package元素中的namespace属性是用来设置访问路径的,不是必须配置的,默认是“”,代表可以接收所有路径的action, namespace可以写为“/”, 或者“/xxx” 等,对应的action访问路径为“/hello.action”, "/xxx/hello.action"。

?

最后:举个例子说明namespace的作用其实主要在于区分不同package中的同名action的访问问题。

<package name="a" namespace="/a" extends="struts-default">
    	<action name="hello" class="com.yanln.test1.HelloWorld">
    		<result name="success">success.jsp</result>
    	</action>
</package>
    
<package name="b" namespace="/b" extends="struts-default">
    	<action name="hello" class="com.yanln.test2.HelloWorld">
    		<result name="success">success.jsp</result>
    	</action>
</package>

?

说明:a包中有个hello, b包中有个hello, 我想访问b包中的hello,action的访问路径就可以这样写“/b/hello.aciton” 。

?

struts2中配置文件里的package元素和namespace属性的区别?

原文:http://yanln.iteye.com/blog/2249804

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!