1

転送が実行されて実行されない前に、jspページの本文内のjavascriptでメッセージを警告しようとしています。

これがコードです

<%
...
out.write("<script type='text/javascript'>\n");
out.write("alert( " + "' Hello '" + ");\n");
out.write("</script>\n");

request.getRequestDispatcher("secondpage.jsp").forward(request, response);
%>

ここでは、コントロールを別のjspページに渡す前に、メッセージにアラートを送信したいと思います。これを行うにはどうすればよいですか。ここで転送部分を削除すると、アラートメッセージがアラートボックスに表示されます。

4

2 に答える 2

3

は、ブラウザに送信されないページのforwardコンテンツを置き換えます。

ブラウザはあなたが書いたスクリプトを受け取らないので、それを実行することはできません。

リダイレクトされる1秒前にユーザーにアラートを表示させたい場合は、次のようにします。

<%
out.write("<script type='text/javascript'>\n");
out.write("alert(' Hello ');\n");
out.write("setTimeout(function(){window.location.href='secondpage.jsp'},1000);");
out.write("</script>\n");
%>
于 2012-11-09T12:29:31.843 に答える
2

JSP自体がHTML/JSコードをプレーンに記述するための優れたテンプレートをすでに提供しているのに、なぜJSPでJavaスクリプトレットを介してJSコードを記述しているのですか?

とにかく、JSPの代わりにJSを使用してリダイレクトを実行してください。ご存知のとおり、Java / JSPはWebサーバー上で実行され、HTML /JSを生成します。HTML/JSはWebブラウザーでのみ実行されます。転送は基本的に要求/応答の宛先を置き換え、応答がコミットされていない場合、事前に応答バッファーに書き込まれたすべてのものを破棄します。

通常のHTML/JSでこれを行う方法は次のとおりです。

<script>
    alert('Hello');
    window.location = 'secondpage.jsp';
</script>

それでおしまい。ほら、スクリプトレットの醜さにそれを入れる必要はまったくありません。全体をJSPファイルに入れるだけです。

于 2012-11-09T12:54:54.327 に答える