Отображение возвращенного Java-объекта на странице jsp с использованием Ajax - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть страница jsp, которая содержит html, который я использую в качестве своего представления, конечную точку отдыха, которую я запрашиваю, используя Ajax для получения @ResponseBody, и тег сценария в jsp, который будет вызывать функцию Ajax каждые несколько секунд.Вызов Ajax в настоящее время работает и, по крайней мере, вызывает конечную точку по расписанию.

В настоящее время, когда я перехожу к конечной точке в моем браузере, мне показывают ответ JSON от Java.

  1. Как мне получить это, чтобы вернуть мою фактическую страницу JSP с html?
  2. Когда вызов Ajax возвращает и назначает значение ответа для переменной wrapper, как я могу сообщить странице обновить каждое поле?

Некоторые фрагменты кода моего контроллера иJSP.

Контроллер

@Controller
@RequestMapping("/")
public class BackgroundJobController {

    private BackgroundJobServiceImpl backgroundJobService = new BackgroundJobServiceImpl();

    @RequestMapping(value = "/home", method = RequestMethod.GET, produces = "application/json")
    public @ResponseBody Wrapper getHome() {
        Wrapper wrapper = new Wrapper();
        wrapper.setMessage("done");
        return wrapper;
    }
}

Home.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="message" value="${wrapper.message}"></c:set>

<script type="text/javascript"
        src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
  function getUpdate() {
    $.ajax({
      url : '/home',
      success : function(data) {
        $('#wrapper').html(data);
      }
    });
  }
</script>

<script type="text/javascript">
  var intervalId = 0;
  intervalId = setInterval(getUpdate, 3000);
</script>

  <Table class="messageTable">
    <c:if test="${not empty message}">
        <tr><td>${message}</td></tr>
    </c:if>
  </Table>

1 Ответ

0 голосов
/ 19 февраля 2019

Мне удалось заставить его работать с помощью комментария от Йозефа.

Я переместил теги <script> в конец тела и добавил dataType: 'json' к моему запросу ajax, чтобы результат былуже разобрали.

После вызова метода успеха я мог бы использовать

      for (var i = 0; i < 9; i++) {
        uat += '<tr><td>' + message[i] + '</td>';
        uat += '</tr>';
      }
      document.getElementById("uatTable").innerHTML = uat;

для построения таблицы и document.getElementById("ID").innerHTML = data для отображения результатов в таблице hmtl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...