1

$.ajax() 関数を使用してアプリケーションでサーブレットを呼び出していますが、リクエストを別の jsp ページに転送し、リクエスト属性を設定しています.....リクエストを転送してリクエストパラメータを設定するのが良い方法かどうかを知りたいだけですajax ベースのサーブ? これが私のサンプルコードです.....

          var id= $("#id").val();

          $("#add-btn").click(function(e) {                                                                                                 
                e.preventDefault();         
                var dataString ='action=insert'+'&id='+id
                console.log(dataString);
                $.ajax({
                    type: "POST",
                    url: "RecordHandler",
                    data: dataString,
                    success: function(data){  
                        console.log('Add');
                        $('body').html(data);
                        $('body').prepend('<div style="width:100%;text-align:center;"><h3 style="color:green" >Record Added Succesfully</h3></div>')
                    }
                });  

            });

ここに私のサーブレットコードがあります......

  private static String UserRecord = "/list.jsp";

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

    String redirect = "";
    String action = request.getParameter("action");
    if (action.equalsIgnoreCase("insert")) {
      String id= request.getParameter("id");
      int uid = Integer.parseInt(id);
      RecordBean record = new RecordBean();
      record.setId(uid);
      dao.addRecord(record);
      redirect = UserRecord;
      request.setAttribute("records", dao.getAllRecords()); //Is it good approach to set request attribute in ajax based servlet?
      System.out.println("Record Added Successfully");

      RequestDispatcher view = request.getRequestDispatcher(redirect);//Is it good approach to redirect request in ajax based servlet?
      view.forward(request, response);
 }

ページを更新せずにajaxを使用してそれを行う方法......私はwindow.location.herf = "list.jsp"をajaxの成功方法で使用してもページを更新しています

4

1 に答える 1

1

AJAX 経由でサーブレットを呼び出すと、サーバーから送信されたヘッダーに関係なく、定義上、同じページにとどまります。

ページを変更する場合は、呼び出しの成功ハンドラー関数で JavaScript を使用して変更する必要があり$.ajax(..)ます。

Location応答ヘッダーを読み取り、window.location.hrefをその値に設定できます。その他のオプションについては、こちらを参照してください

于 2013-07-17T09:52:01.917 に答える