在Web的项目中,总免不了要分页,在以前的项目中一般都是采用SQL语言去分页,但SQL语言不好的一个地方就是每种数据库可能有一些不同,用Hibernate是可以解决这个问题,但是我们的项目没有用到任何框架,主要的技术是JSP+JavaBean+Servlet,是表现层我采用的是面向对象的方法,数据库中的每个表对应一个javaBean,表中的每条记录就是一个javaBean的对象,所以分页程序我也采用面向对象,只要在前台拿到一个表的所有记录,用一个list存起来,然后用进list进行分页即可. 具体的分页程序如下: 1importjava.util.*; 2 3/** 4*些类负责分页显示 5*@authorfeng 6*/ 7publicclassPagination<E> 8{ 9 privateintpageSize;;//每页记录数 10 privateintpageCount;//总页数 11 12 13 publicList<E>getList(List<E>list,intpageCur){ 14 List<E>pageList=newArrayList<E>(); 15 intcount=0; 16 count=list.size(); 17 if(count<pageCur*pageSize){ 18 for(inti=(pageCur-1)*pageSize;i<count;i++){ 19 pageList.add(list.get(i)); 20 } 21 }else{ 22 for(inti=(pageCur-1)*pageSize;i<pageCur*pageSize;i++){ 23 pageList.add(list.get(i)); 24 } 25 } 26 returnpageList; 27 } 28 29 publicintgetPageCount(List<E>list){ 30 intsum=0; 31 sum=list.size(); 32 pageCount=sum/pageSize+1; 33 returnpageCount; 34 } 35 36 publicintgetPageSize(){ 37 returnthis.pageSize; 38 } 39 publicvoidsetPageSize(intpageSize){ 40 this.pageSize=pageSize; 41 } 42} 43
在前台只要把数据库的数据取出,将他放进List中,然后进行分页即可,例如: 有一表user,对应有javaBean为User,先声明一个List List<User> list =new List<User>();
然后将user表中的所有记录查出,然后add进list中, 下面是分页 Pagination<User> p = new Pagination<User>(); p.setPageSize(10); pageCount = p.getPageCount(list); list = p.getList(list,1)
返回的list就是一页的对象了,按顺序取出显示即可. (责任编辑:admin) |