JAVA分页代码

从博主henry8088那里学习JAVA分页代码实例,感觉不错,把他的代码改成适合自己项目的代码,做个记录留作以后查阅之用。大笑


首先PageUtil 类没有做修改,直接粘贴复制的。

package com.hjf.web.view; 

public class PageUtil ...{ 
    private int pageSize;//每页显示的条数 
    private int recordCount;//总共的条数 
    private int currentPage;//当前页面 
    public PageUtil(int pageSize, int recordCount, int currentPage) ...{ 
            this.pageSize = pageSize; 
            this.recordCount = recordCount; 
            setCurrentPage(currentPage); 
        } 
         //构造方法 
        public PageUtil(int pageSize, int recordCount) ...{ 
            this(pageSize, recordCount, 1); 
        } 
        //总页数 
        public int getPageCount() ...{ 
            int size = recordCount/pageSize;//总条数/每页显示的条数=总页数 
            int mod = recordCount % pageSize;//最后一页的条数 
            if(mod != 0) 
                size++; 
            return recordCount == 0 ? 1 : size; 
        } 
        //包含,起始索引为0 
        public int getFromIndex() ...{ 
            //System.out.println("from index:"+(currentPage-1) * pageSize); 
            return (currentPage-1) * pageSize; 
        } 
        //不包含 
        public int getToIndex() ...{ 
            //System.out.println("to index:"+Math.min(recordCount, currentPage * pageSize)); 
            return  Math.min(recordCount, currentPage * pageSize); 
        } 
        //得到当前页 
        public int getCurrentPage() ...{ 
            return currentPage; 
        }//设置当前页 
        public void setCurrentPage(int currentPage) ...{ 
            int validPage = currentPage <= 0 ? 1 : currentPage; 
            validPage = validPage > getPageCount() ? getPageCount() : validPage; 
            this.currentPage = validPage; 
        }//得到每页显示的条数 
        public int getPageSize() ...{ 
            return pageSize; 
        }//设置每页显示的条数 
        public void setPageSize(int pageSize) ...{ 
            this.pageSize = pageSize; 
        }//得到总共的条数 
        public int getRecordCount() ...{ 
            return recordCount; 
        }//设置总共的条数 
        public void setRecordCount(int recordCount) ...{ 
            this.recordCount = recordCount; 
        } 
} 
第二,放在jsp里面的代码,做了一点修改,首先那些对象名自然是要修改成自己项目里面的,然后我的数据查询是写在Java类里面,所以不用再查一次。还有就是我的表有是空的,如果不加上判空,会报空指针异常.

String pageStr = request.getParameter("page"); 
int currentPage = 1; 
if (pageStr != null) 
currentPage = Integer.parseInt(pageStr); 
int aListLength=0;
if(aList!=null){//aList表中可能无数据,aList为空
  aListLength=aList.size();
}else{
 aListLength=0;
}
PageUtil pUtil = new PageUtil(2, aListLength, currentPage); 
currentPage = pUtil.getCurrentPage(); 
遍历输出变量的for循环,只是要把对象名改一下。

 for (int i = pUtil.getFromIndex(); i < pUtil.getToIndex(); i++) { //查出整个列表后,从起始页位置开始输出一个页面的记录
 			messegeBean2 = (MessegeBean) aList.get(i); 
</pre>结尾也有少许不同(在下面的代码里把<span style="font-size:14px; line-height:25.200000762939453px; text-align:center; font-family:Helvetica,Tahoma,Arial,sans-serif; background-color:rgb(240,240,240)">columnName写死只是为了测试上页和下页的切换是否正确,偷懒了</span><span style="font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:18px"><span style="font-family:Helvetica,Tahoma,Arial,sans-serif; font-size:14px; line-height:25.200000762939453px">)</span></span><p></p><pre name="code" class="java"><tr><td width=100% bgcolor="#eeeeee" colspan=4 align="center"> 
记录总数<%=pUtil.getRecordCount()%>条 当前页/总页数<%=currentPage%> 
/<%=pUtil.getPageCount()%>每页显示<%=pUtil.getPageSize()%>条 
<h1 style="color:red">注意:下面的页码只是测试   教务处专栏   模块的</h1>
<a href="topiclistservlet?columnName=3&&page=1">首页</a> 
<a href="topiclistservlet?columnName=3&&page=<%=(currentPage - 1)%>">上页</a>  
<a href="topiclistservlet?columnName=3&&page=<%=(currentPage + 1)%>">下页</a> 
<a href="topiclistservlet?columnName=3&&page=<%=pUtil.getPageCount()%>">末页</a> 
</td></tr>






你可能感兴趣的:(分页,java分页,数据库分页)