struts.xml名称空间导致404找不到页面

时间:2017-07-31 02:59:39

标签: java xml struts2 namespaces actionresult

我在struts2 web项目的struts.xml上遇到了问题。 我有登录页面,登录后,URL将添加" / secure / .action"。 我试着在struts.xml中有两个包。一个是正​​常的" /"第二个是" / secure"。但是登录后会导致404找不到页面。如果我也制作第二个包裹" \"在命名空间中,仅使用" /"调用membersite.action;命名空间,它可以成功直接但只有" / .action"在网址中。我需要这个网址" / secure / *。动作"在基础设施问题。有没有提示?

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

1 个答案:

答案 0 :(得分:0)

操作名称不应包含扩展名.action。如果使用操作名称编写它,则操作映射器无法找到操作结果的相应映射。

代码

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

应改为

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