2008-09-15 3 views
2

Приложение Struts 1.3. Главный сайт НЕ обслуживается struts/Java. Мне нужно перенаправить результат действия struts на страницу на веб-сайте, которая находится вне контекста struts. В настоящее время я пересылаю JSP в контекст и использую мета-обновление для перехода к реальному местоположению. Это кажется сочным. Есть ли способ лучше?Struts 1.3: вперед вне контекста приложения?

ответ

4

Вы не можете «переслать» в строгом смысле слова. Просто вызовите sendRedirect() объекта HttpServletResponse в методе execute() класса Action. и затем «return null».

поочередно, либо вызов setModule на объекте ActionForward (что вы собираетесь вернуться) или установить путь к абсолютному URI

+0

Я понимаю, что абсолютный URI, который не включает хост/порт, всегда рассматривается относительно контекста приложения. Что устанавливает setModule()? Это явно не документировано и похоже на «/ whatever» по-прежнему относительно контекста приложения? – davetron5000 2008-09-15 16:43:27

0

Если это все еще было в веб-приложении, вы можете использовать ServletContext.RequestDispatcher? Вот как работает метод Struts doForward(). Однако, чтобы выйти за пределы Struts/Java, вам потребуется sendRedirect().

RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); 
rd.forward(request, response); 
+0

Я не думаю, что это позволяет вам выйти за пределы контекста webapp .... – davetron5000 2009-06-19 14:52:16

Смежные вопросы