帮我看看这段分页的代码有什么错误!拜托

黑兵 2004-10-13 02:22:16
数据库中有49条记录时,点击“到最后一页”时,出现org.apache.jasper.JasperException: Index: 50, Size: 49
源代码如下。


<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"%>
<jsp:useBean id="mytemp" class="mybean.temp" scope="application"/>
<%!
int PageSize = 9;
int ShowPage = 1;
int RowCount = 0;
int PageCount = 0;
int i=0;
%>
<%
String bid=mytemp.get_s1();
String sql = "select * from dule_clda order by zt desc";
List list = myconn.executeQuery(sql);
String ss=null;
%>
<HTML>
<HEAD>
<TITLE>派车</TITLE>
<meta http-equiv="Refresh" content="300">
</HEAD>
<%
RowCount = list.size();
if(RowCount!=0){
//因为size()是从0开始的,所以PageSize+1,如果是PageSize不加1的话,一到总记录为整数时,如10、20、50,就会出现空值错误,而且页数不对
PageCount = ((RowCount % (PageSize+1)) == 0 ?(RowCount/PageSize):(RowCount/PageSize)+1);

String ToPage = request.getParameter("ToPage");
if(ToPage != null)
{
ShowPage = Integer.parseInt(ToPage);
if(ShowPage > PageCount)
{
ShowPage = PageCount;
}
else if(ShowPage <= 0)
{
ShowPage = 1;
}
}
int j=(ShowPage - 1) * (PageSize + 1);
%>
<body background="images/bg-1.gif" leftmargin="0" topmargin="0">
<div align="left">
<TABLE width="850" height="1" border=1 cellpadding="0" cellspacing="0">
<TR bgcolor="#CCCCCC">
<TD width= 707 height="23" align="center" bgcolor="#000080" colspan="7">
<b><font color="#FFFF00">用车情况一览表<font size="2">(注:</font></font><font size="2"><font color="#008000">■</font><font color="#FFFF00">本车可用</font><font color="#000080"><font color="#008000">
</font><font color="#ff0000">■</font></font><font color="#FFFF00">正在工作</font><font color="#000080"><font color="#ff0000">
</font><font color="#ff9933">■</font></font><font color="#FFFF00">维修停用)</font></font></b>
</TD>
</TR>
<TR bgcolor="#CCCCCC">
<TD width= 707 height="23" align="center" bgcolor="#000080" colspan="7">
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="850" bgcolor="#FFFFFF">
<tr>
<td width="100%">
<font size="2" face="宋体" color="#000000">当前在第
<%= ShowPage %>页, 共
<%= PageCount %>页,总计:<%= RowCount %>台车</font>
</td>
</tr>
</table>
</center>
</div>
</TD>
</TR>
<TR bgcolor="#CCCCCC">
<TD width= 30 height="23" align="center" bgcolor="#000080">
<font size="2" face="宋体" color="#FFFF00">标志</font></TD>
<TD width= 135 height="23" align="center" bgcolor="#000080">
<font size="2" face="宋体" color="#FFFF00">车牌号</font></TD>
<TD width= 80 height="23" align="center" bgcolor="#000080">
<font size="2" face="宋体" color="#FFFF00">驾驶员</font></TD>
<TD width= 225 height="23" align="center" bgcolor="#000080">
<font size="2" face="宋体" color="#FFFF00">车辆类型</font></TD>
<TD width= 225 height="23" align="center" bgcolor="#000080">
<font size="2" face="宋体" color="#FFFF00">所属公司</font></TD>
</TR>
<TR bgcolor="#FFFFFF">
<%
for(int i = 0; i <= PageSize; i++)
{
Map map = (HashMap)list.get(j);
j++;
%>
<TR bgcolor="#FFFFFF">
<%
ss=(String)map.get("zt");
if(ss.trim().equals("3"))
{
%>
<TD width= 30 align="center" height="1"><a href="clsyqk1.jsp?cid=<%=(String)map.get("ID")%>&cph=<%=(String)map.get("cph")%>&zt=<%=(String)map.get("zt")%>"><font color="#008000" size="2" face="宋体">●</font></a></TD>
<%
}
else
if(ss.trim().equals("2"))
{%>
<TD width= 30 align="center" height="1"><a href="clsyqk1.jsp?cid=<%=(String)map.get("ID")%>&cph=<%=(String)map.get("cph")%>&zt=<%=(String)map.get("zt")%>"><font color="#ff0000" size="2" face="宋体">●</font></a></TD>
<%}
else
{%>
<TD width= 30 align="center" height="1"><a href="clsyqk_1.jsp?cid=<%=(String)map.get("ID")%>&cph=<%=(String)map.get("cph")%>&zt=<%=(String)map.get("zt")%>"><font color="#FF9933" size="2" face="宋体">●</font></a></TD>
<%}
%>
<TD width= 135 height="1"><font color="#000000" size="2" face="宋体"><%=(String)map.get("cph")%></font></TD>
<TD width= 80 height="1"><font color="#000000" size="2" face="宋体"><%=(String)map.get("jsy")%></font></TD>
<TD width= 225 height="1"><font color="#000000" size="2" face="宋体"><%=(String)map.get("cllx")%></font></TD>
<TD width= 225 height="1"><font color="#000000" size="2" face="宋体"><%=(String)map.get("ssgs")%></font></TD>
</TR>
<%if(j==list.size())
break;
}
%><FORM action=clsyqk.jsp method=POST>
<TR bgcolor="#FFFFFF">
<TD width= 707 align="center" height="1" colspan="7">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="850" bgcolor="#000080">
<tr>
<%
if(ShowPage != 1)
{
%>
<td width="140" align="center"><a href="clsyqk.jsp?ToPage=<%= 1 %>"><img border="0" src="images/b-1.gif"></a></td>
<td width="140" align="center"><a href="clsyqk.jsp?ToPage=<%= ShowPage - 1 %>"><img border="0" src="images/b-2.gif"></a></td>
<%
}
if(ShowPage != PageCount)
{
%>
<td width="140" align="center"><a href="clsyqk.jsp?ToPage=<%= ShowPage + 1%>"><img border="0" src="images/b-3.gif"></a></td>
<td width="140" align="center"><a href="clsyqk.jsp?ToPage=<%= PageCount %>"><img border="0" src="images/b-4.gif"></a></td>
<%
}
%>
<td width="294" align="center"><font size="2" color="#FFFF00">到<INPUT type="text" name=ToPage style="HEIGHT: 25px; WIDTH: 40px" value=<%= ShowPage%> size="20">页<input type="submit" value="Go" name="B5"></font>
</tr></FORM>
</table>
</div>
</TD>
</TR>
</TABLE>
</div>
<%}
else{%>
<script language=javascript>
window.location="msg.jsp?xx=暂时没有任何记录!&yy='bjdd.jsp'"
</script>
<%}%>
<table>
<td width="996" height="21"> </td>
<td width="8" height="21"></td>

<CENTER>
</CENTER>
</BODY>
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑兵 2004-10-13
  • 打赏
  • 举报
回复
我自己解决了,呵呵,谢谢各位。
PageCount = ((RowCount % (PageSize+1)) == 0 ?(RowCount/(PageSize+1)):(RowCount/(PageSize+1))+1);
成都清香白莲 2004-10-13
  • 打赏
  • 举报
回复
PageCount = ((RowCount % (PageSize+1)) == 0 ?(RowCount/PageSize):(RowCount/PageSize)+1); 这句有问题
改为
PageCount = (RowCount + PageSize - 1) / PageSize;
MARS.nEIL 2004-10-13
  • 打赏
  • 举报
回复
是不是越界了?

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧