Frage

Ich versuche, einen neuen Benutzernamen zu senden, um einem der mehreren Tabellen auf meinem JSP hinzuzufügen. Jede Tabelle ist in einer JSPF -Datei definiert und in der JSP enthalten. Ich versuche, jQuery.ajax () zu verwenden, um den Namen an meinen Spring Controller zu senden (der dann die gesamte Mitte und Back -Stufe erledigt). Wenn der Federcontroller zurückkehrt, möchte ich, dass die einzige Tabelle automatisch aktualisiert wird. Ich möchte die gesamte Seite nicht aktualisieren.

Wie mache ich das? Was kehre ich von meinem Spring Controller zurück? Ich muss die eine Tabelle (die sich in einer einzelnen JSPF -Datei befindet) basic aktualisieren.

Hier ist ein Beispiel für den Ajax -Anruf, den ich verwende:

$.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);
  }
});
War es hilfreich?

Lösung

Return Benutzername und Tabellenname vom Controller (falls Sie mehrere Tabellen haben). Wenn Sie dann JQuery verwenden, fügen Sie einfach den Benutzernamen der entsprechenden Tabelle hinzu.
In Controller setzen Sie die Werte in JSON -Objekt ein, können Sie verwenden Json-Simple Werte im JSON -Objekt codieren/dekodieren @Responsebody Als Rückkehrtyp von Controller, um Seite/Ansicht Aktualisierung zu vermeiden. In Controller

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

In JS dekodieren JSON -Werte und verwenden Sie JQuery, wie Sie es verwenden können

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

});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top