struts的package的name与namespace

<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的访问路径

posted @ 2017-05-13 20:38  LeeJiLin  阅读(1045)  评论(0)    收藏  举报