JSP论坛分页技术

今天分享一下之前做过一个小论坛的分页功能。首先 定义四个 分页 会用到的变量
int pageSize=3;
int pageNow=1;//默认显示第一页
int rowCount=0;//该值从数据库中查询
int pageCount=0;//该值是通过pageSize和rowCount
//接受用户希望显示的页数(pageNow)
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
//接收到了pageNow
pageNow=Integer.parseInt(s_pageNow);
}
String pagecount="select count(*) from tb_reply where RTID='"+request.getParameter("id")+"'";
ResultSet rsc=connection.executeQuery(pagecount);
while(rsc.next()){
rowCount=rsc.getInt(1);
}//得到总条数
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}//总页数
if(pageCount==0)
{
pageCount=1;//要不然的话,若没有回复的话,pageCount=0,下面for(int i=1;i<=pageCount;i++){部分就不会进行,也就不会显示【1】了
}
//下面红色的代码取得3条记录并显示,f为起始索引,3为要取的总条数。
int f=(pageNow-1)*3;
String sqlReyle="select tb_reply.*,tb_user.* from tb_reply inner join tb_user on tb_reply.RUID= tb_user.UID where tb_reply.RTID='"+request.getParameter("id")+"' limit "+f+",3";

下面就是有记录就循环,下面是部分代码:
ResultSet rsReyle=connection.executeQuery(sqlReyle);
try{
while(rsReyle.next()){
//reSign=rsReyle.getString("sign");
//get title
String sqlRet="select TTopic from tb_topics  where TID='"+request.getParameter("id")+"'";
//ResultSet rsRet=connection.executeQuery(sqlReyle);
ResultSet rsRet=connection.executeQuery(sqlRet);
try{
while(rsRet.next()){
//reSign=rsReyle.getString("sign");
reTitle=rsRet.getString("TTopic");
}}catch(Exception e){}
//end get title
reContent=rsReyle.getString("RContent");
reAccount=rsReyle.getString("UName");
recreatime=rsReyle.getString("RTime");
reSex=rsReyle.getInt("USex");
replyid=rsReyle.getInt("RID");
%>。。。。。。。下面表格啥的。
下面是显示下一页,上一页,当前页的代码:
<table width="777" height="20" border="0" align="center" cellpadding="-2" cellspacing="-2">
  <tr>
    <td align="center" style="color:#666666 "> 
    <%
    if(pageNow!=1){
out.println("<a href=showContent.jsp?id="+id+"&pageNow="+(pageNow-1)+">[上一页]</a>");}
if(pageNow==1){
out.println("[上一页]");
}
//显示超链接
int j=0;//...只显示一次的控制
int k=0;
for(int i=1;i<=pageCount;i++){

if(pageNow!=1&&(i-pageNow)<=-7&&j==0)//最多显示7个可见页码
{
out.println("<a href=showContent.jsp?id="+id+"&pageNow=1>...</a>");
j=1;
}
if((i-pageNow)<7&&(i-pageNow)>-7){
if(i==pageNow)
{
out.println("<a href=showContent.jsp?id="+id+"&pageNow="+i+">["+i+"]</a>");
}
else
{
out.println("<a href=showContent.jsp?id="+id+"&pageNow="+i+">"+i+"</a>");
}}
else if((i-pageNow)>=7&&k==0){
out.println("<a href=showContent.jsp?id="+id+"&pageNow="+pageCount+">...</a>");
k=1;
}

}
//下一页
if(pageNow!=pageCount){
out.println("<a href=showContent.jsp?id="+id+"&pageNow="+(pageNow+1)+">[下一页]</a>");
}
if(pageNow==pageCount){
out.println("[下一页]");
}
out.println("第"+pageNow+"页/共"+pageCount+"页");
     %>
	</td>
  </tr>
</table>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值