2012-05-09 7 views
0

によって呼び出されたサーブレットから私は、サーブレット 内の値を印刷することができますが、私は別のJSPに転送することはできませんAjaxコードは、前方別のJSPへのAJAX

$.ajax({ 
       url: 'servletName', 
       data: { 
        userID: selectedID 
       }, 
       type: 'post' 
      }); 

を使用してサーブレットを呼び出していないことができます。..私は送信ボタンをフォームからこのサーブレットを呼び出す場合... サーブレットコードが

id = request.getParameter("userID"); 
System.out.println("Selected ID : "+id); 

request.setAttribute("newID", id); 

RequestDispatcher rd = request.getRequestDispatcher("/newpage.jsp"); 
rd.forward(request, response); 

で、それが動作します。 しかし、それはajaxコードから別のJSPに転送されません。 それを行うための方法は何ですか? は、誰もが$.ajax

+0

そして、何、それはそれをするのか、それはJSPに転送しないで

?何が起こるのですか?例外はありますか?どのようにフォワードが起こっていないと診断していますか? –

+0

'rd.include()'を試しましたか? – home

答えて

3

を助けてくださいすることができ、これを追加します。

dataType: 'text' 

を成功一部では、これを追加します。

あなたはからのHTTPリクエストを送信しているという事実を理解させる必要がある
var url = "(your url)"; 
$(location).attr('href', url); 
0

ajaxは、メインスレッド以外の別のスレッド(要求を送信しているページ自体)以外の別のスレッドで要求を送信していることを意味します。したがって、サーブレットでのリダイレクトはクライアント側では反映されません。これを実現するには、リダイレクトしたいURLをリクエストして返信し、Ajaxの成功メソッドでは単にjava script window.location(URL)を使います。サーブレット

クライアント側で
JSONObject jobj = new JSONObject() 
String urlToRedirect = "test.jsp"; 
jobj.put("url",urlStr); 
response.getWriter().write(jobj.toString()); 

$.ajax({ 
       url: 'servletName', 
       data: { 
        userID: selectedID 
       }, 
       type: 'post', 
       success: function(data){ 
        window.location = data.url; 
       } 

      }); 
関連する問題