我们在Web应用程序中使用Struts 2。已经定义了大量的操作映射,我想实现一个功能,其中任何Urls以 / buy 开头,而不是映射到任何现有的操作映射,例如 / buy / new 或购买/旧应重定向到购买/索引操作。例如,如果有人试图去 / buy / bla1 或 / buy / bla2 或购买/ bla1 / bla2 / bla3 应该去买/指数。
答案 0 :(得分:0)
在/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 不会被覆盖,除非您向x添加x,否则将产生404错误扩展名列表。
如果这还不够好,您可以通过在网络服务器中使用重定向规则来解决这个问题。
答案 1 :(得分:0)
您可以使用默认操作引用并为其提供JSP成功路径。
如果收到任何不匹配的操作,它将调用给定的操作并将其转发到结果JSP页面。