如何在 struts2 中实现全局重定向页面

how to implement global redirect page in struts2

我们在网络应用程序中使用 Struts 2。已经定义了一堆动作映射,我想实现一个功能,其中任何以 /buy 开头的 Url 都没有映射到任何现有的动作映射,例如/buy/newbuy/old 应重定向到 buy/index行动。例如,如果有人试图去 /buy/bla1/buy/bla2buy/bla1/bla2/bla3 应该转到 buy/index。

在您的 /buy 包中定义以下操作:

<action name="*">
    <result type="redirectAction">index</result>
</action>

或者您可以使用:

<default-action-ref name="index" />

但是你不会得到重定向。相反,索引页面将显示在不存在的地址下。

您还需要在 struts.properties 中设置以下参数:

struts.action.extension = action,,

您可以向参数添加其他扩展名,但据我所知,所有扩展名都没有通配符。空白字符串覆盖了像 /buy/bla 这样的目录,但是 /buy/bla.x 不会被覆盖并且会产生 404 错误除非您将 x 添加到扩展列表中。

如果这还不够好,您最好在网络服务器中使用重定向规则来解决这个问题。

您可以使用默认操作参考并提供 JSP 成功路径。

如果收到任何不匹配的操作,它将调用给定的操作并将其转发到结果 JSP 页面。