遇到个问题,使用while循环时不知道该如何控制界面上只显示10个页码数,每次都是输出全部的页码,想实现当页码是第10页时,界面上的页码数显示10~20页以此类推。连接数据库是用Javabean。
<%
int pagesize=1;//每页显示几条数据
int id=1;//当前页
int pages=1;//页码
String pPages="";
String nPages="";
int rowcount=0;//页面总数
int pagecount=0;
String path="";
if(request.getParameter("id")!=null){
try{
id=Integer.parseInt(request.getParameter("id"));
}
catch(Exception e){
id=1;
}
}
ResultSet rs =null;
String sql="SELECT count(*)FROM guestbook ";//获得总页数
rs=bb.getResult(sql);
rs.next();
rowcount=rs.getInt(1);
if(rowcount % pagesize==0){
pagecount=rowcount/ pagesize;
}else{
pagecount=rowcount/ pagesize+1;
}
pages=id;
if(pages>pagecount){
pages=pagecount;
}
if(pages<0){
pages=1;
}
sql="select * from guestbook order by time desc limit "+(pages-1)*pagesize+","+pagesize+"";
rs=bb.getResult(sql);
%>
<table class="table2" cellspacing="0">
<tr style="text-align: center;">
<td style="width: 260;border-right:1px solid black;">时间</td>
<td style="width: 130;border-right:1px solid black;">姓名</td>
<td width=600px;>内容</td>
</tr>
<% while(rs.next()){ %>
<tr>
<td style="width: 260;border-right:1px solid black;"><%=rs.getString("time") %></td>
<td style="width: 130;border-right:1px solid black;text-align: center;"><%=rs.getString("name") %></td>
<td><%=rs.getString("text") %></td>
</tr>
<% } rs.close();
bb.Release();%>
</table>
<%if(id==1){ %>
<span>首页</span>
<span>上一页</span>
<%}else{ %>
<a href="?id=<%=1%>">首页</a>
<a href="?id=<%=(id-1)%>">上一页</a>
<%}
int i=1;
while(i<=pagecount){
%>
<a href="?id=<%=i%>"><%=i%></a>
<%i++;
}
if(id>=pagecount){%>
<span>下一页</span>
<span>尾页</span><br>
<%}else{%>
<a href="?id=<%=(id+1)%>">下一页</a>
<a href="?id=<%=pagecount%>">尾页</a>
<%} %>