<script>
//when page is ready do the following
$(document).ready(function()
{
//set interval of refresh
setInterval(doAjaxMethod, 1000);
});
function doAjaxMethod(id)
{
$.ajax({
url: "getStatus/"+id,
dataType: "json",
success: function(json)
{
$('#ajaxStatus').html(json.status);
}
});
</script>
<%
//How can I do something like this
int n = object.size();
for(int i=0; i<n; i++)
{
doAjaxMethod(object.getId());
}
%>
<div id=ajaxStatus> status updates here </div>
答案 0 :(得分:3)
我不会在scriplets中混合调用javascript。相反,在javascript中管理循环。如果你描述了你想要做的更多,我可以更具体。看来你在jsp上有一个容器对象,你需要循环来获取容器中的内容的状态。而不是将该对象传递给jsp,为什么不创建一个端点,jsp上的javascript可以在ajax中调用以获取所需的所有数据。
答案 1 :(得分:2)
您可以做的一种方法是将它们添加到具有css类的对象列表中,并在其上触发ajax方法onLoad
。
这是一些未经测试的(可能是未编译的)
<%
//How can I do something like this
int n = object.size();
for(int i=0; i<n; i++)
{
out.println("<li class='abcd' id ='<%=object.getId()%>'>" +object.getId() +"</li>");
}
%>
然后在jload on pageload
$(function(){
$('.abc').each(i, v){
doAjaxMethod($(v).attr('id'));
}
});
答案 2 :(得分:0)
试试这个(假设objArray
是一个数组):
$.each(objArray, function(i, obj) {
doAjaxMethod(obj.getId());
});
它将遍历您的数组,obj
是每个项目。
希望它有所帮助。