JQuery AjaxとSpringコントローラーを使用して、jspfのリフレッシュの問題

StackOverflow https://stackoverflow.com/questions/9316132

  •  26-10-2019
  •  | 
  •  

質問

JSPの複数のテーブルの1つに追加する新しいユーザー名を送信しようとしています。各テーブルはJSPFファイルで定義され、JSPに含まれています。 jquery.ajax()を使用して、スプリングコントローラーに名前を送信しようとしています(その後、すべての中間層と背面層の作業が行われます)。スプリングコントローラーが返されたら、1つのテーブルに自動的に更新してもらいたいです。ページ全体を更新したくありません。

どうすればいいですか?スプリングコントローラーから何を返しますか? 1つのテーブルを更新する必要があります(1つのJSPFファイルにあります)。

以下は、私が使用しているAjaxコールの例です。

$.ajax('/path/addUser.html', {
  type: "POST",
  data: { "userName" : "bob" },
  success: function(data) {
     // do what if anything?
  },
  error: function(jqXHR, textStatus, errorThrown) {
    Ext.MessageBox.alert('Error', errorThrown);
  }
});
役に立ちましたか?

解決

コントローラーからユーザー名とテーブル名を返します(複数のテーブルがある場合)。次に、jQueryを使用して、対応するテーブルにユーザー名を追加します。
コントローラーで値をJSONオブジェクトに配置すると、使用できます json-simple json object.keepで値をエンコード/デコードする @Responsebody ページ/表示を回避するためのコントローラーのタイプを返すように。コントローラーで

JSONObject json = new JSONObject();
json.put("userName", user_name);
json.put("tableName",table_name);
return json;

JSではJSON値をデコードし、使用できるようにjQueryを使用します

$(tableName + "tr:last").after(userName);   
  $.ajax('/path/addUser.html', {
  type: "POST",
  data: { "userName" : "bob" },
  success: function(data) {
      $(data.tableName + "tr:last").after(data.userName);   
  },

});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top