У меня есть страница jsp, которая содержит html, который я использую в качестве своего представления, конечную точку отдыха, которую я запрашиваю, используя Ajax для получения @ResponseBody
, и тег сценария в jsp, который будет вызывать функцию Ajax каждые несколько секунд.Вызов Ajax в настоящее время работает и, по крайней мере, вызывает конечную точку по расписанию.
В настоящее время, когда я перехожу к конечной точке в моем браузере, мне показывают ответ JSON от Java.
- Как мне получить это, чтобы вернуть мою фактическую страницу JSP с html?
- Когда вызов 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>