Проблема с обновлением JSPF с использованием jQuery Ajax и Spring Controller
Вопрос
Я пытаюсь отправить новое имя пользователя, чтобы добавить в одну из нескольких таблиц на моем JSP. Каждая таблица определена в файле JSPF и включена в JSP. Я пытаюсь использовать jQuery.ajax (), чтобы отправить имя своему пружинному контроллеру (который затем выполняет всю работу среднего и заднего уровня). Когда контроллер пружины возвращается, я хочу, чтобы одна таблица автоматически обновлялась. Я не хочу обновлять всю страницу.
Как мне это сделать? Что мне вернуть из своего весеннего контроллера? Мне нужно обновить одну таблицу (которая находится в одном файле JSPF).
Вот пример того, как я использую Ajax Call:
$.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 Decode 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);
},
});