JSP中整段for循环没有执行,怎么回事? 40
<%for(intcount=0;count<=10;count++){%><scriptlanguage="javascript">functionyz(){if(ar...
<%
for(int count=0;count<=10;count++)
{
%>
<script language="javascript">
function yz()
{
if(ar.equals('是'))
{
window.location = "shi.jsp";
}
}
setTimeout("yz()",5000);
</script>
<%}
}
response.sendRedirect("fou.jsp");%>
<%
我想5s进行一次验证,如果满足要求的时候跳出循环,直到5*10s后直接跳转到另一个界面。但每次执行都直接跳转到fou.jsp,循环完全没有执行,甚至连最开始的5s都没有延时,这是怎么回事啊?
以上是整个循环体,是语句是没有问题的。前后是连接数据库的语句。
而且很奇怪,倒三行那个}如果没加就会有问题。但我感觉那个是多余的。求助~~~ 展开
for(int count=0;count<=10;count++)
{
%>
<script language="javascript">
function yz()
{
if(ar.equals('是'))
{
window.location = "shi.jsp";
}
}
setTimeout("yz()",5000);
</script>
<%}
}
response.sendRedirect("fou.jsp");%>
<%
我想5s进行一次验证,如果满足要求的时候跳出循环,直到5*10s后直接跳转到另一个界面。但每次执行都直接跳转到fou.jsp,循环完全没有执行,甚至连最开始的5s都没有延时,这是怎么回事啊?
以上是整个循环体,是语句是没有问题的。前后是连接数据库的语句。
而且很奇怪,倒三行那个}如果没加就会有问题。但我感觉那个是多余的。求助~~~ 展开
4个回答
展开全部
setTimeout这个计时器调用是异步执行的,就是java里面另外开一个线程,也就是说同一时间在执行setTimeout里面的东西 ,同时主线程也在执行,所以会直接response.sendRedirect("fou.jsp")。不知道是不是这样原因。你可以试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%
for(int count=0;count<=10;count++)
{
out.prinln("<script language="javascript">");
out.prinln(" function yz()");
out.prinln(" {");
out.prinln(" if(ar.equals('是')){ ");
out.prinln("window.location = "shi.jsp"; ");
out.prinln(" }");
out.prinln("}");
out.prinln(" setTimeout("yz()",5000);");
out.prinln(" </script>");
}
}
response.sendRedirect("fou.jsp");%>
亲,哪能直接在java中套js代码。。。你随便找,看看能不能找到这样的
我不知道你的js写的是否正确。如果照我写的不行,你在页面加载时,直接跑你的js,看看有没有问题。如果js没问题,这个代码应该是没问题的
for(int count=0;count<=10;count++)
{
out.prinln("<script language="javascript">");
out.prinln(" function yz()");
out.prinln(" {");
out.prinln(" if(ar.equals('是')){ ");
out.prinln("window.location = "shi.jsp"; ");
out.prinln(" }");
out.prinln("}");
out.prinln(" setTimeout("yz()",5000);");
out.prinln(" </script>");
}
}
response.sendRedirect("fou.jsp");%>
亲,哪能直接在java中套js代码。。。你随便找,看看能不能找到这样的
我不知道你的js写的是否正确。如果照我写的不行,你在页面加载时,直接跑你的js,看看有没有问题。如果js没问题,这个代码应该是没问题的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的setTimeout方法写错了,应该setTimeout("yz();", 5000); 调用yz方法后面要写分号.这样就能运行到JS了。调试的时候可以用F12,开发人员工具浏览器都带的。
追问
我加分号了,开始还是和以前一样啊。。
追答
} 最后的那个就是多余的,<% 你也应该去掉最后一个吧。你F12调试一下就知道那个地方错了。怎么不试一试。你的ar取值什么不是有问题,能取到值进行正常判断吗?打个断点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
明显结构嵌套有问题,细心检测会发现的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询