Мы используем Struts 2 в нашем веб-приложении. Уже определено множество сопоставлений действий, я хочу реализовать функцию, в которой любые URL-адреса, начинающиеся с /buy и не сопоставленные ни с одним из существующих сопоставлений действий, например. /buy/new или buy/old должны быть перенаправлены на действие buy/index. Например, если кто-то пытается перейти на /buy/bla1 или /buy/bla2 или buy/bla1/bla2/bla3, следует перейти на купить / индекс.
как реализовать глобальную страницу перенаправления в struts2
Ответы (2)
Определите следующее действие в вашем пакете /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 в список расширения.
Если этого недостаточно, вам может быть лучше решить эту проблему, используя правила перенаправления на веб-сервере.
default-action-ref
.
- person Stefan Bartel; 22.05.2015
Вы можете использовать ссылку на действие по умолчанию и указать для нее путь успеха JSP.
Если получено какое-либо несопоставленное действие, оно вызовет данное действие и перенаправит его на страницу результатов JSP.