spring+hibernate+Struts分页逻辑共享(一)

如有不清楚的地方还可网上交流QQ:76968802 EMAIL:houzm13@163.com

        首先这个分页逻辑也不全是自己写出来的,是在别人的基础上作一修改的,在之后的文章上还会详细的讲述如何应用。

      大家都知道每访问一次数据库都会影响程序的效率,为此要减少访问数据库。这个分页的逻辑为,每从数据库中读一次记录时,就先取出一百条记录,并分出10页来,每页有10条记录。然后放在session中,当要读下一页时只以访问session中的下一页就行了。大大提高了效率。当然也相应的增加了服务器的少量负担。

package com.host.struts.service;
/**
 * MyEclipse Struts Creation date: 08-04-2006
 *
 * XDoclet definition:
 *
 * @struts.action validate="true"
 * @author 侯彰明
 */
public class PublicPage {

 int currentPage = 0; // 当前页

 int totalPages = 0; // 总页数

 int pageStartRow = 0;// 每页的起始数

 int endPages = 10;// 结束页数

 boolean hasNextPage = false; // 是否有下一页

 boolean hasPreviousPage = false; // 是否有前一页

 int totalRows = 0; // 总数据数

 public int getEndPages() {
  return endPages;
 }

 public void setEndPages(int endPages) {
  this.endPages = endPages;
 }

 public int getCurrentPage() {
  return currentPage;
 }

 public void setCurrentPage(int currentPage) {
  this.currentPage = currentPage;
 }

 public boolean isHasNextPage() {
  return hasNextPage;
 }

 public void setHasNextPage(boolean hasNextPage) {
  this.hasNextPage = hasNextPage;
 }

 public boolean isHasPreviousPage() {
  return hasPreviousPage;
 }

 public void setHasPreviousPage(boolean hasPreviousPage) {
  this.hasPreviousPage = hasPreviousPage;
 }

 public int getPageStartRow() {
  return pageStartRow;
 }

 public void setPageStartRow(int pageStartRow) {
  this.pageStartRow = pageStartRow;
 }

 public int getTotalPages() {
  return totalPages;
 }

 public void setTotalPages(int totalPages) {
  this.totalPages = totalPages;
 }

 public int getTotalRows() {
  return totalRows;
 }

 public void setTotalRows(int totalRows) {
  this.totalRows = totalRows;
 }

 public PublicPage(int count) {
  
  totalRows = count;
  if ((totalRows % 10) == 0) {
   totalPages = totalRows / 10;
   if(totalRows==0){
    endPages=0;
   }else{
    endPages = currentPage + 10;
   }
  } else {
   totalPages = totalRows / 10 + 1;
   
   endPages = totalPages%10;
   if ((currentPage + 10) >= totalPages) {
    endPages = totalPages%10;
    hasNextPage = false;
   } else {
    endPages = 10;
   }
   
  }

  if (currentPage >= totalPages) {
   hasNextPage = false;
  } else {
   hasNextPage = true;
  }
  if (totalRows <= 10) {
   endPages = totalPages;
   hasNextPage = false;
  }
  
 }

 public void getNextPage() {
  currentPage = this.getCurrentPage();
  if (currentPage > 0 && currentPage < totalPages) {
   hasPreviousPage = true;
   pageStartRow = currentPage * 10;
   } else {
   hasPreviousPage = false;
  }
  if (currentPage + 10 >= totalPages) {
   endPages = totalPages%10;
   hasNextPage = false;
   hasPreviousPage = true;
   pageStartRow = currentPage * 10 ;
  } else {
   hasNextPage = true;
  }
 }

 public void getPreviousPage() {
  currentPage = this.getCurrentPage();
  if ((currentPage) < 1) {
   hasPreviousPage = false;
  } else {
   hasPreviousPage = true;
  }
  if ((currentPage) == 0) {
   hasPreviousPage = false;
   pageStartRow = currentPage * 10;
  } else {
   hasPreviousPage = true;
  }
  if ((currentPage) > 0) {
   hasPreviousPage = true;
   pageStartRow = currentPage * 10;
  } else {
   hasPreviousPage = false;
  }
 }
 public void getCurrent() {
  if ((currentPage + 10 >= totalPages)||(totalPages<=10)) {
   endPages = totalPages;
   hasNextPage = false;
  }
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值