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>