Question

Je suis en train d'envoyer un nouveau nom d'utilisateur à ajouter à l'une des tables multiples sur ma jsp. Chaque table est définie dans un fichier jspf et inclus dans le jsp. Je suis en train d'utiliser jQuery.ajax () pour envoyer le nom à mon contrôleur Spring (qui fait alors tout le travail de niveau intermédiaire et à l'arrière). Lorsque le contrôleur retourne Spring je veux une table pour mettre à jour automatiquement. Je ne veux pas rafraîchir la page.

Comment puis-je faire? Que dois-je reviens de mon contrôleur Spring? Je bascially besoin de rafraîchir l'une table (qui est en un seul fichier jspf).

Voici un exemple de l'appel ajax J'utilise:

$.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);
  }
});
Était-ce utile?

La solution

nom d'utilisateur Retour et le nom de la table du contrôleur (Si vous avez plusieurs tables). Ensuite, en utilisant Jquery il suffit d'ajouter le nom d'utilisateur à la table correspondante.
Dans le contrôleur mettre les valeurs dans l'objet JSON, vous pouvez utiliser JSON simples encode / décoder les valeurs en JSON object.Keep @Responsebody comme type de contrôleur de retour pour éviter la page / vue rafraîchissement. Dans le contrôleur

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

JS decode valeurs JSON et l'utilisation jquery comme vous pouvez utiliser

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

});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top