如何在 struts2 中实现全局重定向页面
how to implement global redirect page in struts2
我们在网络应用程序中使用 Struts 2。已经定义了一堆动作映射,我想实现一个功能,其中任何以 /buy 开头的 Url 都没有映射到任何现有的动作映射,例如/buy/new 或 buy/old 应重定向到 buy/index行动。例如,如果有人试图去 /buy/bla1 或 /buy/bla2 或 buy/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 页面。
我们在网络应用程序中使用 Struts 2。已经定义了一堆动作映射,我想实现一个功能,其中任何以 /buy 开头的 Url 都没有映射到任何现有的动作映射,例如/buy/new 或 buy/old 应重定向到 buy/index行动。例如,如果有人试图去 /buy/bla1 或 /buy/bla2 或 buy/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 页面。