Я переношу приложение стойки в Struts 2. Он был разработан Struts 1.2 четыре года назад.jsp: forward tag to forward to Struts 2 action
Мой вопрос:
В моем JSP, есть такое высказывание:
<jsp:forward page="/a.do" />
Он хорошо работает в Struts 1, но не работает в Struts 2, скажите мне HTTP 404 ошибка когда я обращался к этому JSP-файлу.
Однако, если у меня есть доступ к http://localhost:8080/shell/a.do
, он работает хорошо.
Интересно, причина в том, что прямое действие не может быть захвачено фильтром Struts 2? (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
)
Таким образом, форвард не может быть отправлен на действие Struts 2?
В моем приложении много форвардов, если форварды не могут работать в Struts 2, это единственное решение для использования перенаправления вместо пересылки?
На самом деле этот вопрос основан на моем анализе, исходная работа - это страница приветствия на сайте. Если я использую jsp:forward
навстречу a.do, он не работает. И я последовал за советом Романа, используйте result
вместо форварда. Итак, теперь вопрос заключается в том, как настроить действие по умолчанию для всего приложения?
Я пробовал <default-action-ref name="a"/>
, но он работает только для неотображаемых действий, например http://localhost:8080/shell2/(some-unmapped-action).do
, он переходит к действию по умолчанию. Но это не сработает, если я не укажу ".do"
.
Конечно, это можно сделать с помощью url-rewrite, но я не хочу использовать этот подход.
Привет всем, я думаю, что этот вопрос может быть закрыт, потому что только тогда, когда Я добавил ' ЗАПРОС INCLUDE FORWARD ' в моем web.xml для фильтра struts2, эта проблема может быть исправлена. FYI. –