日期:2014-05-17  浏览次数:21090 次

求教:jsp中if语句判断无论是否满足都会先弹出alert()或confirm()!
<%
while(stuID.next())
{
s_ID=stuID.getString("ID"); 
s_Passwords=stuID.getString("passwords");
boolean flag=(s_ID.equals(myID) && s_Passwords.equals(password));//判断数据库中是否有存在的用户和密码

if(flag)//如果有,则进行打印
{
%>
<table border="1" align="center">
<tr bgcolor="#ffeffe">
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>学院</td>
<td>班级</td>
<td>邮箱</td>
<td>电话</td>
</tr>
<%
 
out.println(myID+"同学,登录成功!");
while(stuInformation.next())
{
stuNo=stuInformation.getString("stuNo");
stuName=stuInformation.getString("stuName");
stuSex=stuInformation.getString("stuSex");
stuAcademy=stuInformation.getString("stuAcademy");
stuClass=stuInformation.getString("stuClass");
stuEmail=stuInformation.getString("stuEmail");
stuMobile=stuInformation.getString("stuMobile");
%>
<tr>
<td><%=stuNo%></td>
<td><%=stuName%></td>
<td><%=stuSex%></td>
<td><%=stuAcademy%></td>
<td><%=stuClass%></td>
<td><%=stuEmail%></td>
<td><%=stuMobile%></td>
</tr>  
<%
}
}
if(!flag)//如果没有则进行弹出警告!
{
out.println("<script language=\"JavaScript\">alert(\"您的账号或密码输入错误!\")</script>");

break;//结束循环
}
}
%>



其中遇到一个问题,一直很困扰,就是无论是否满足if语句都会先弹出alert()警示窗口;我用confirm()的时候也会;

out.println("<script language=\"JavaScript\">if(confirm(\"您的账号或密码输入错误!\"))
{window.location.href=\"login.jsp\"}{window.location.href=\"login.jsp\"}</script>");




------解决方案--------------------
你这是个循环判断,你保证每一次循环flag的布尔值多是一样的(true)?
如果有true有false,那一定会弹出警告。
------解决方案--------------------
说明 FLAG一直为TRUE啊 确认下 FLAG 是 BOOLEAN 类型吗~~如果不是 if(flag)
就变成了判断flag存在与否的逻辑表达式了
探讨
也奇怪:if(){}else{} 进不去~out.println("<h1>test!</h1>");始终无法显示,而if为true的时候又可以正常打印数据库的信息!
if(flag)
{
%> <table border="1" align="center"> <%
......
%> </table> <%
}
else
{
out.println("<h1>test……