Sturts2中Action的搜索顺序

http://localhost:8080/ProjectName/path1/path2/path3/XX.action

首先会判断以/path1/paht2/path3为namespace的package是否存在,

1.若存在,则检查该package下是否有name为XX的action,若有则执行,否则报错。

2.若不存在,判断其父路径即以/path1/path2为namespace的package是否存在,重复1或2步骤

直到在某package下找到name为XX的action。若namespace为" / "时仍未找到则报错

 

例如,struts.xml文件中配置的一个package如下:

<package name="testStruts" extends="struts-default" namespace="/aaa">
        <action name="login" class="pkg.LoginAction">
            <result name="success">/loginSuccess.jsp</result>
            <result name="fail">/loginFail.jsp</result>
        </action>
</package>

此时启动tomcat访问不同链接的响应如下:

 

 

 

 

 此时没有namespace为/bbb/aaa和/bbb的package,所以会报错

 

 修改namespace(默认为" / "):

<package name="testStruts" extends="struts-default">
        <action name="login" class="pkg.LoginAction">
            <result name="success">/loginSuccess.jsp</result>
            <result name="fail">/loginFail.jsp</result>
        </action>
</package>

 

 

 

 

原文地址:https://www.cnblogs.com/wincent98/p/10038002.html