<struts> <constant name="struts.devMode" value="true"></constant>
<package name="default" namespace="/" extends="struts-default">
<action name="hello_action" class="strurts.HelloAction" method="execute">
<result name="success">/jsp/success.jsp</result>
</action>
</package> <package name="mydefault" namespace="/" extends="struts-default">
<action name="hello_action" class="strurts.HelloAction" method="execute">
<result name="success">/success.jsp</result>
</action>
</package> <package name="test02" namespace="/lee" extends="struts-default">
<action name="hello_action" class="strurts.HelloAction" method="execute">
<result name="success">/jsp/test02.jsp</result>
</action>
</package> <package name="test01" namespace="/lee" extends="struts-default">
<action name="hello_action" class="strurts.HelloAction" method="execute">
<result name="success">/jsp/test01.jsp</result>
</action>
</package> </struts>
1.namespace="lee"---test01与test02对比
test01是后加载的,会覆盖test02中的action
http://localhost:8080/strurts/lee/test02/hello_action.action
http://localhost:8080/strurts/lee/test01/hello_action.action
都会访问test01中的action
2.同namespace下的同名package,会在struts.xml中,后加载的有效 如:test01是后加载的,会覆盖test02中的action
即便修改包名,只要action的名字一样,后加载有效,包名怎么改都没用
推论:
struts通过namespace来区分同名的action,不是package-name
action同名的时候,按加载顺序,后加载生效!!
<package>
name 是action的存放路径
namespace 是action的访问路径