2017-07-31 24 views
-1

struts2 Webプロジェクトのstruts.xmlに問題があります。 ログインページがあり、ログイン後にURLに「/ secure/.action」が追加されます。 私はstruts.xmlに2つのパッケージを作ろうとしました。 1つは通常の "/"で、2つ目は "/ secure"です。しかし、ログイン後に404が見つかりませんでした。 2番目のパッケージをネームスペースで "\"を作り、 "/"ネームスペースのみでmemberite.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

私は問題を発見しました。セッションのユーザーID値を確認するloginFilterを持っています。 nullの場合、問題が表示されます。名前空間を越えたので、セッションのユーザーIDはnullになります。私はログインフィルタを削除することはできません、それを解決する方法はありますか? – Chiu

+0

loginFilterとは何ですか? –

関連する問題