struts.xml命名空间导致404未找到页面

问题描述 投票:0回答:1

我在 Struts 2 Web 项目的

struts.xml
上遇到问题。

我有登录页面,登录后,网址会添加

/secure/*.action

我尝试在

struts.xml
里放两个包裹。第一个是正常的
/
,第二个是
/secure

但是登录后会导致404找不到页面。

如果我在命名空间中也制作第二个包

\
并仅使用
membersite.action
命名空间调用
/
,那么它将没问题并成功直接,但 URL 中仅包含
/*.action

我需要在基础设施问题中提供此 URL

/secure/*.action
。有什么提示吗

    <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>

 
java namespaces struts2 actionresult xml-configuration
1个回答
0
投票

操作名称不应有扩展名

.action
。如果您使用操作名称编写它,则操作映射器无法找到操作结果的适当映射。

代码

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

应改为

<param name="actionName">membersite</param>
© www.soinside.com 2019 - 2024. All rights reserved.