Перезаписать отображаемые данные с помощью записей AJAX - PullRequest
2 голосов
/ 21 декабря 2011

Я пытаюсь перезаписать текущие отображаемые записи всеми записями, которые я получаю с помощью ajax-запроса.

То, что я первоначально сделал в своем контроллере:

private ModelAndView fetchRecords(Model model) {


    model.addAttribute("records", getSelectedRecords());
    return new ModelAndView("list", "command", model);
}

и отображаюзаписи в jsp как:

<c:forEach var="rec" items="${records}">
      ${rec}
</c:forEach>

Работает нормально.

Теперь я сопоставляю запрос ajax следующим образом в контроллере:

@RequestMapping(value = "/list")
public @ResponseBody Object getServiceRequestSummaryPage(Model model, HttpSession session) {

    return records= getAllRecords();
}

Он возвращает записи в Jqueryметод ниже и показ в предупреждении

function loadallRecords(pn){
    $.get("list.html", { pageNumber: pn }, function(records) {

        alert(records);
    });
}
<html>
<body>
<a href="" onClick="loadallRecords(${pn})" >Load all records</a>
</body>
</html>

Теперь я не знаю, как я могу перезаписать выбранные записи со всеми записями в jsp.

Я хочу перезаписать нижеприведенный jsp со всемизаписи:

<c:forEach var="rec" items="${records}">
${rec}
</c:forEach>

Пожалуйста, помогите.

1 Ответ

3 голосов
/ 21 декабря 2011

В принципе вы будете использовать jQuery для поиска контейнера div, в котором хранятся ваши предыдущие записи (возможно, с использованием значения id), вы будете вызывать .empty() для него, чтобы очистить предыдущие записи, а затем вы .append() вашзаменяющие записи.

Поскольку вы не указали нам ни одного HTML-кода для записей, мы не можем давать очень конкретные, но гипотетические рекомендации, если исходная страница выглядела следующим образом:

<div id="container">
<c:forEach var="rec" items="${records}">
      ${rec}
</c:forEach>
</div>

Затем, если loadallRecords получает массив записей JSON, ваша замещающая функция может выглядеть следующим образом:

function loadallRecords(pn){
    $.get("list.html", { pageNumber: pn }, function(records) {
        $container = $("#container");
        $container.empty();
        $.each(records, function(index, value) {
            $container.append(value);
        })
    });
}

Если loadallRecords получает строку HTML, которая представляет новые результаты, то она будет работать следующим образом:

function loadallRecords(pn){
    $("#container").load("list.html", { pageNumber: pn });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...