我有一个jsp页面,其中包含要用作视图的html,一个其余端点(我正在使用Ajax查询以获取@ResponseBody
)和一个jsp中的脚本标签,它将每隔几个调用Ajax函数秒。 Ajax调用当前正在工作,至少正在按计划调用端点。
当前,当我在浏览器中导航到端点时,会看到来自Java的JSON响应。
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>
答案 0 :(得分:0)
在约瑟夫(Jozef)的评论帮助下,我设法使它起作用。
我将<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表中。