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>

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章