2012-04-06 14 views
1

「待ってください........」というメッセージを表示したいのですが、私のJavaコードは処理を終了します。バックグラウンド処理としてのメッセージ待ち....表示

page1.jsp - 私のフォームには、テキストボックスと送信ボタンがあります。 submitボタンをクリックすると、私はフォーム送信と呼び出しpage2.jspを実行しています

page2.jspでは、私はpage1.jspからparametrsを要求し、私のuseridを返すjavaメソッドに渡しています。

userid = myclass.mymethod(); 
if(userid!=null){ 
out.println("Record is in process.Please wait"); 
} 
response.sendredirect("page3.jsp?"+userid=userId); 

page3.jsp私はpage2.jspに入っているユーザーIDを同時に処理しています。

someid =request.getparameter(userid); 
process(someid); 

しかし、すべての処理が完了したら、「待機」メッセージが表示されます。私はuserIdを取得するとすぐにそれを表示したい。そしてそのユーザーIDのバックグラウンド処理を続けます。

+0

は、あなたが)(out.flush使用することができ、またメッセージ... –

+0

を待って表示するために、AJAXを使用する必要があります。ラメッシュが提案したものほど信頼性がありません。 flushメソッドでは、メッセージを待つ前にページの先頭にパディングテキストを追加して、ブラウザ(主にIE)に描画を開始させる必要があります。あなたが投稿したい場合は、コードを尋ねます。 – rickz

+0

@rickz .yesあなたはポストコードをお願いしますか? – user1316131

答えて

0

IE8とChrome 18でテストしました。サーバーに制限がある場合は、問題が発生する可能性があります。たとえば、Google App Engineでは動作しません。

<html> 
<body> 
Some text here is necessary here for the IE browser to start displaying. 
Otherwise it will wait until it receives enough of a response to begin displaying  anything. 
I am not sure how much padding is necessary. This works in IE 8. 
<% 
    out.print("<loading.gif' />"); 
    out.flush(); 
    //mock processing 
    for(int x = 0; x < 3; x++){ 
         out.print("<br/>Processing!"); 
         out.flush(); 
         Thread.sleep(3000); 
    } 
%> 
<br/>Finished processing. Here are the results... 
</body> 
</html> 
+0

ありがとうございました。私は行方不明だったので、それはメッセージを表示していなかったからです。 – user1316131

+0

こんにちは、@ rickz.Once私の処理が完了したら、私は "仕上げ処理" messegeを表示しています。しかし、その時私は隠されたいと思っています。 "待ってください.." jspのメッセージ。どうやってそれに行くことができますか? – user1316131

+0

私の2番目の答えを見てください。 – rickz

1

多くのことを行うにはjavascriptを使用できます。ここに一つのアイデアがあります。

<html> 
<body> 
<div id="wait"> 
Some text here is necessary here for the IE browser to start displaying. 
Otherwise it will wait until it receives enough of a response to begin displaying   anything. 
I am not sure how much padding is necessary. This works in IE 8. 
<% 
    out.print("<little.gif' />"); 
    out.flush(); 
    for(int x = 0; x < 3; x++){ 
         out.print("<br/>Processing!"); 
         out.flush(); 
         Thread.sleep(3000); //mock processing 
    } 
%> 
<br/></div> 
<script> 
    alert("Finished processing."); 
    document.getElementById("wait").innerHTML = "Here are the results..."; 
</script> 
</body> 
</html>