簡體   English   中英

Servlet 中的 RequestDispatcher.forward(req, res) 沒有任何效果

[英]RequestDispatcher .forward(req, res) in Servlet doesn't have any effect

我在轉發到 a.jsp 頁面時遇到問題。 讓我描述一下我的程序:

在 Servlet 中,我想確認一些事情,所以我做了.forward() to.jsp,其中我在 $(document).ready(function()...

如果選擇了 OK,我創建新的 XMLHttpRequest() 並將參數 confirm=1 和 go 設置回之前的 Servlet,其中按預期執行確認(confirm=1)后必須執行的代碼塊。 但是那個塊的最后一行 is.forward back to.jsp 似乎根本沒有效果。

服務程序代碼:

if("1".equals(request.getParameter("confirm"))){
  ...
   setting some request.setAttribute();
}
else{
  ...
}

RequestDispatcher  rd = request.getRequestDispatcher(...);
rd.forward(req, res);

實際上,我看到了正確的頁面,但我認為這是在確認之前。 它可能應該重新加載,因為我必須從請求中獲取一些屬性並根據這些屬性值顯示 jquery 的一些內容。

那么你認為 for.forward() 沒有生效的原因是什么? 我可以以某種方式強制頁面重新加載嗎?

編輯:第一次執行 Servlet 代碼(其他情況)。forward() 調用工作正常。 但下次它什么都不做,無論我嘗試轉發到哪個頁面。 就像我根本沒有轉接電話一樣。 奇怪的。 我真的希望有人對此有一個解釋。

EDIT2:我猜這不是前向問題。 如果我對所需屬性執行 system.out.print,我會得到正確的值。 但是為什么頁面沒有重新加載? 即使我轉發到 different.jsp 我仍然看到前一個。

在確認情況下,你確定你go到最后,然后打電話給前鋒嗎?

可能你得到一個 null 指針或類似的東西。

嘗試添加 system.out.println() 或以調試模式運行。

我並沒有真正設法解決我的問題。jsp 頁面未加載。 我實際上只需要將一些屬性從 Servlete 傳遞到 javascript 所以我使用 jQuery ajax 調用 PrintWriter 所以我將這些屬性作為鍵:8822996504788 function 中的值對。然后我只是使用 javascript function 將這些值設置為一些 span.7 到 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM