2017-07-31 77 views
-1

我對struts2 web項目的struts.xml存在問題。 我有登錄頁面,登錄後URL將添加「/ secure/.action」。 我試圖在struts.xml中有兩個包。一個是正​​常的「/」,第二個是「/ secure」。但是會導致登錄後404找不到頁面。如果我在命名空間中創建第二個包「\」,並且僅使用「/」命名空間調用membersite.action,則它將成功並直接成功,但在URL中只有「/ .action」。我需要在基礎結構問題中擁有此URL「/secure/*.action」。有沒有什麼提示?struts.xml名稱空間導致404未找到頁面

<package name="awip" namespace="/" extends="tiles-default, struts-default"> 
    <result-types> 
     <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> 
    </result-types> 
    <global-results> 
     <result name="sessionTimeout" type="tiles">.logon.LogonForm</result>  
     <result name="errorRedirect" type="tiles">.errorPage</result>   
    </global-results> 
    <action name="logon" class="logonAction" method="displayLogonForm"> 
     <result name="displayLogonForm" type="tiles">.logon.LogonForm</result> 
    </action> 
    <action name="doLogon" class="logonAction" method="doLogon"> 
     <result name="displayLogonForm" type="tiles">.logon.LogonForm</result> 
     <result name="displayMainPage"    type="redirectAction"> 
      <param name="namespace">/secure</param> 
      <param name="actionName">membersite.action</param> 
     </result> 
    </action> 
</package> 
<package name="secureAwip" namespace="/secure" extends="tiles-default, struts-default"> 
    <result-types> 
     <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> 
    </result-types> 
    <global-results> 
     <result name="sessionTimeout" type="tiles">.logon.LogonForm</result>  
     <result name="errorRedirect" type="tiles">.errorPage</result>   
    </global-results> 
    <action name="membersite" method="unspecified" class="membersiteAction"> 
     <result name="displayMembersiteMain" type="tiles">.membersite.Main 
     </result> 
    </action> 
</package> 

回答

0

動作名稱不能有擴展名.action。如果使用動作名稱編寫動作映射程序,則無法找到動作結果的適當映射。

代碼

<param name="actionName">membersite.action</param> 

應改爲

<param name="actionName">membersite</param> 
+0

試過,但還是同樣的錯誤。 – Chiu

+0

我發現了這個問題。因爲我有loginFilter會檢查會話用戶ID值。如果它爲空,則會顯示問題。當我越過名字空間時,會話用戶ID將變爲空。我無法刪除登錄過濾器,有什麼辦法解決它? – Chiu

+0

什麼是loginFilter? –