我在 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>
操作名称不应有扩展名
.action
。如果您使用操作名称编写它,则操作映射器无法找到操作结果的适当映射。
代码
<param name="actionName">membersite.action</param>
应改为
<param name="actionName">membersite</param>