我在轉發到.jsp頁面時遇到問題。讓我描述我的程序:Servlet中的RequestDispatcher.forward(req,res)沒有任何效果
在Servlet我想確認一些東西,所以我做了.forward()到.jsp,其中包含了javascript,並在$(document).ready(function()中確認了...
如果選擇OK,我創建新的XMLHttpRequest()並設置一個參數confirm = 1,並返回到前一個Servlet,其中必須在確認後執行的代碼塊(confirm = 1)按預期執行。它的.forward回.JSP該塊的最後一行似乎已經完全沒有效果
servlet代碼:
if("1".equals(request.getParameter("confirm"))){
...
setting some request.setAttribute();
}
else{
...
}
RequestDispatcher rd = request.getRequestDispatcher(...);
rd.forward(req, res);
實際上,我看到了正確的頁面,但它是在我認爲確認之前。它應該可能已被重新加載,因爲我必須從請求中獲取一些屬性,並根據這些屬性值顯示jquery的一些內容。
那麼你認爲.forward()沒有效果的原因是什麼?我可以強制頁面以某種方式重新加載?
編輯:第一次執行Servlet代碼(否則).forward()調用工作正常。但下一次它什麼都不做,無論我嘗試轉發到哪個頁面。就像我根本沒有前進的呼叫。奇怪。我真的希望有人對此有一個解釋。
EDIT2:這不是前向問題,我猜。如果我做system.out.print所需的屬性,我會得到正確的值。但爲什麼頁面不能重新加載?即使我轉發到不同的.jsp,我仍然可以看到前一個。
http://docs.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html#forward%28javax.servlet.ServletRequest,%20javax.servlet.ServletResponse%29 – 2012-04-10 08:20:05
就像我說過的,這很可能不轉發導致問題。或者是?我該如何解決這個問題? – petter386 2012-04-10 08:49:13
提供使AJAX Servlet調用的代碼 – 2012-04-10 10:03:14