2008-09-15 49 views
2

Struts 1.3應用程序。主網站不是由struts/Java提供的。我需要將struts操作的結果轉發到網站中的一個頁面,這是struts上下文之外的部分。目前,我轉發到上下文中的JSP並使用元刷新轉發到真實位置。這似乎有點不舒服。有沒有更好的辦法?Struts 1.3:在應用程序上下文之外轉發?

回答

4

嚴格意義上,你不能「轉發」。只需在Action類的execute()方法中的HttpServletResponse對象上調用sendRedirect()即可。然後,'返回null'。

交替,在ActionForward對象上調用任何setModule(您準備返回)或將路徑設置爲絕對URI

+0

我的理解是絕對URI不包含主機/端口總是被認爲是相對於應用上下文。 setModule()是做什麼的?它沒有清楚地記錄,似乎「/無論」仍然與應用程序上下文有關? – davetron5000 2008-09-15 16:43:27

0

我落得這樣做response.sendRedirect是()。

0

如果這仍然在Web應用程序中,您可以使用ServletContext.RequestDispatcher?這就是Struts doForward()方法的工作原理。但是,要走出Struts/Java,你需要sendRedirect()。

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

我不認爲它可以讓你離開web應用程序的環境.... – davetron5000 2009-06-19 14:52:16

相關問題