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

如何在struts2中实现全局重定向页面,struts2,struts,struts-config,Struts2,Struts,Struts Config,我们在web应用程序中使用Struts 2。已经定义了很多操作映射,我想实现一个功能,其中任何以/buy开头但未映射到任何现有操作映射(例如/buy/new或buy/old)的URL都应该重定向到buy/index操作。例如,如果有人试图转到/buy/bla1或/buy/bla2或buy/bla1/bla2/bla3,则应转到buy/index 在您的/购买包中定义以下操作: 您可以向参数中添加其他扩展,但据我所知,所有扩展都没有通配符。空白字符串覆盖类似/Buff/BLA但/Buff/BLA.

我们在web应用程序中使用Struts 2。已经定义了很多操作映射,我想实现一个功能,其中任何以/buy开头但未映射到任何现有操作映射(例如/buy/new或buy/old)的URL都应该重定向到buy/index操作。例如,如果有人试图转到/buy/bla1或/buy/bla2或buy/bla1/bla2/bla3,则应转到buy/index

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

您可以向参数中添加其他扩展,但据我所知,所有扩展都没有通配符。空白字符串覆盖类似/Buff/BLA但/Buff/BLA.x的目录,除非将X添加到扩展列表中,否则X将不被覆盖,并且会产生404错误。
如果这还不够好,您最好在Web服务器中使用重定向规则来解决这个问题。

您可以使用默认操作引用并提供一个JSP成功路径


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

Struts2已经有一个默认操作,为什么要配置这个奇怪的扩展来阻止struts加载静态页面。我完全忘记了struts的默认操作,因为我从未使用过它。我从答案中删除了不必要的步骤。我还添加了default-action-ref的可能用法。我们的客户机不想发送使用哪个框架的电报,因此我们不得不使用html作为操作扩展。我将其更改为action以减少混淆。如果您或您的客户端X不想发送使用哪种框架的电报,最好不要使用任何框架,并且使用的扩展并不直接指向框架的使用,而是对action映射进行扩展。OP根本不使用任何扩展,你至少应该跟着他。
<action name="*">
    <result type="redirectAction">index</result>
</action>
<default-action-ref name="index" />
struts.action.extension = action,,