0

.jspページへの転送に問題があります。私のプログラムについて説明しましょう。

サーブレットで何かを確認したいので、$(document).ready(function()..に確認付きのjavascriptを含めた.jspに.forward()を実行しました。

OKが選択された場合、新しいXMLHttpRequest()を作成し、パラメーターconfirm = 1を設定して、確認(confirm = 1)後に実行する必要のあるコードのブロックが期待どおりに実行される前のサーブレットに戻ります。しかし、.jspに.forwardするそのブロックの最後の行は、まったく効果がないようです。

サーブレットコード:

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

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

実は正しいページが見えますが、確認前のものだと思います。リクエストからいくつかの属性を取得し、それらの属性値に応じてjqueryでいくつかのものを表示する必要があるため、おそらくリロードされているはずです。

では、.forward()が効果を発揮しない原因は何だと思いますか?どういうわけかページを強制的にリロードできますか?

編集:サーブレットコードが最初に実行されるとき(それ以外の場合).forward()呼び出しは正常に機能します。しかし、次回は、どのページに転送しようとしても、何もしません。転送電話がまったくないのと同じように。変。誰かがこれについて説明してくれることを本当に望んでいます。

EDIT2:それは私が推測するフォワードの問題ではありません。必要な属性のsystem.out.printを実行すると、正しい値が取得されます。しかし、なぜページがリロードされないのですか?別の.jspに転送しても、前の.jspが表示されます。

4

2 に答える 2

0

.jspページがロードされないという問題を実際に解決することはできませんでした。実際には、サーブレットからjavascriptにいくつかの属性を渡すだけでよいので、PrintWriterに対してjQuery ajax呼び出しを使用して、それらの属性をjavascript関数のkey:valueペアとして取得しました。次に、JavaScriptを使用して、これらの値をいくつかのスパンに設定しました。

于 2012-04-11T09:38:40.970 に答える
0

確認の場合、本当に最後まで行って、フォワードに電話してよろしいですか?

nullポインタなどを取得する可能性があります。

system.out.println() を追加するか、デバッグ モードで実行してみてください。

于 2012-04-10T08:01:02.840 に答える