[ZZ]struts分页的一种实现

【来源】 http://blog.csdn.net/yq76034150
最近看到很好的一种分页方法,就贴出来大家共同分享!(原作在javaworld),有不完善的地方,希望大家改正!!!

使用一个页面控制类,它记录页面信息,如上页,下页,当前页等。在查询的Action中,将这个控制类和查询条件一起传递给数据库访问bean,然后将这两个参数保存在用户session中。在分页控制Action中,利用接收到的分页参数调用数据库访问的bean.
(1)分页控制类

package com.tower.util;
public class PageController {
    int totalRowsAmount; file://总行数
    boolean rowsAmountSet; file://是否设置过totalRowsAmount
    int pageSize=2;   file://每页行数
    int currentPage=1; file://当前页码
    int nextPage;
    int previousPage;
    int totalPages;  file://总页数
    boolean hasNext;  file://是否有下一页
    boolean hasPrevious; file://是否有前一页
    String description;
    int pageStartRow;
    int pageEndRow;
    
    public PageController(int totalRows){
  setTotalRowsAmount(totalRows);
    }
    public PageController(){}
public void setTotalRowsAmount(int i) {
  if(!this.rowsAmountSet){
   totalRowsAmount = i;
   totalPages=totalRowsAmount/pageSize+1;
      setCurrentPage(1);
   this.rowsAmountSet=true;
  }
  
}
public void setCurrentPage(int i) {
  currentPage = i;
  nextPage=currentPage+1;
  previousPage=currentPage-1;
  file://计算当前页开始行和结束行
  if(currentPage*pageSize
      pageEndRow=currentPage*pageSize;
      pageStartRow=pageEndRow-pageSize+1;
      
  }else{
      pageEndRow=totalRowsAmount;
      pageStartRow=pageSize*(totalPages-1)+1;
  }
  if (nextPage>totalPages){
      hasNext=false;
  }else{
   hasNext=true;
  }
  if(previousPage==0){
     hasPrevious=false;
  }else{
   hasPrevious=true;
  };
  System.out.println(this.description());
}
public int getCurrentPage() {
  return currentPage;
}
public boolean isHasNext() {
  return hasNext;
}
public boolean isHasPrevious() {
  return hasPrevious;
}
public int getNextPage() {
  return nextPage;
}
public int getPageSize() {
  return pageSize;
}
public int getPreviousPage() {
  return previousPage;
}
public int getTotalPages() {
  return totalPages;
}
public int getTotalRowsAmount() {
  return totalRowsAmount;
}
public void setHasNext(boolean b) {
  hasNext = b;
}
public void setHasPrevious(boolean b) {
  hasPrevious = b;
}
public void setNextPage(int i) {
  nextPage = i;
}
public void setPageSize(int i) {
  pageSize = i;
}
public void setPreviousPage(int i) {
  previousPage = i;
}
public void setTotalPages(int i) {
  totalPages = i;
}
public int getPageEndRow() {
  return pageEndRow;
}
public int getPageStartRow() {
  return pageStartRow;
}

public String getDescription(){
    String description=\"Total:\"+this.getTotalRowsAmount()+
    \" items \"+this.getTotalPages() +\" pages\";
//    this.currentPage+\" Previous \"+this.hasPrevious +
//    \" Next:\"+this.hasNext+
//    \" start row:\"+this.pageStartRow+
//    \" end row:\"+this.pageEndRow;
    return description;
}

public String description(){
    String description=\"Total:\"+this.getTotalRowsAmount()+
    \" items \"+this.getTotalPages() +\" pages,Current page:\"+
    this.currentPage+\" Previous \"+this.hasPrevious +
    \" Next:\"+this.hasNext+
    \" start row:\"+this.pageStartRow+
    \" end row:\"+this.pageEndRow;
    return description;
}


public static void main(String args[]){
  PageController pc=new PageController(3);
        System.out.println(pc.getDescription());
//        pc.setCurrentPage(2);
//  System.out.println(pc.description());
//  pc.setCurrentPage(3);
//  System.out.println(pc.description());
}

posted on 2006-06-13 05:17 XiaoLi 阅读(526) 评论(0)  编辑  收藏 所属分类: Others


只有注册用户登录后才能发表评论。


网站导航:
 

公告


文章发布许可

本站作品均采用知识共享署名-非
商业性使用-禁止演绎 2.5 中国大
陆许可协议
进行许可。

Books I've Translated

《精通Nginx(第二版)》

精通Nginx(第二版)
《云计算:原理与范式》

 云计算:原理与范式

《SQL技术手册(第三版)》
SQL技术手册(第三版)
《MySQL核心技术手册(第二版)》
MySQL核心技术手册(第2版)
《RESTful Web Services中文版》
RESTful Web Services中文版

导航

留言簿(2)

随笔分类

搜索

最新评论