注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

等闲识得东风面,万紫千红总是春!

 
 
 

日志

 
 

spring + velocity实现分页程序  

2010-11-25 00:20:21|  分类: java(B/S) |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这段时间用 Spring + ibatis开发一个内部用的管理工具。麻雀随小,但五脏俱全。由于没有用公司的webx框架,重复发明轮子了,也碰到了一些问题。

 

比如spring+ibatis 分页程序:) .

 

偶参考网络上的一个实现。实现没有依赖数据库特性。如mysql limit。经过测试成功。

 

具体的实现PageUtil:

 package com.ali.util;

import java.util.ArrayList;
import com.ali.db.User;

public class PageUtil {
 private int currentPage = 0;// 当前页

 private int rowCount = 0;// 总行数

 private int pageSize = 0;// 页大小

 private int pageCount = 0;// 总页数

 private int beginPosition = 0;// 页起始

 private int endPosition = 0;// 页终止

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

 private boolean hasPreviousPage = false;// 是否上一页

 private ArrayList arrayList = new ArrayList();// 记录集

 /**
  * 初始化变量
  *
  * @param rowCount
  * @param pageSize
  * @param currentPage
  */
 public PageUtil(ArrayList arrayList, String pageSize, String currentPage) {
  this.arrayList = arrayList;
  this.rowCount = arrayList.size();

  this.pageSize = Integer.parseInt(pageSize);

  this.getPageCount();
  if (currentPage == null || currentPage.equals("")) {
   this.currentPage = 1;
  } else {
   try {
    this.currentPage = Integer.parseInt(currentPage);
   } catch (NumberFormatException nfe) {
    this.currentPage = 1;
   }
  }
  this.getCurrentPage();
  this.getBeginPosition();
  this.getEndPosition();
 }

 /**
  * 获取总行数
  *
  * @return rowCount
  */
 public int getRowCount() {
  return rowCount;
 }

 public int getPageSize() {
  return pageSize;
 }

 public int getCurrentPage() {
  if (currentPage >= pageCount) {
   currentPage = pageCount;
  } else if (currentPage <= 1) {
   currentPage = 1;
  }
  return currentPage;
 }

 public int getPageCount() {
  // 计算出总页数
  pageCount = (rowCount + pageSize - 1) / pageSize;
  return pageCount;
 }

 public int getBeginPosition() {
  // 计算出页起始
  beginPosition = (currentPage - 1) * pageSize + 1;
  return beginPosition;
 }

 public int getEndPosition() {
  // 计算出页终止
  if (currentPage >= pageCount) {
   endPosition = rowCount;
  } else {
   endPosition = currentPage * pageSize;
  }
  return endPosition;
 }

 public boolean isHasNextPage() {
  // 计算出是否有下一页
  if (currentPage >= pageCount) {
   hasNextPage = false;
  } else {
   hasNextPage = true;
  }
  return hasNextPage;
 }

 public boolean isHasPreviousPage() {
  // 计算出是否有上一页
  if (currentPage <= 1) {
   hasPreviousPage = false;
  } else {
   hasPreviousPage = true;
  }
  return hasPreviousPage;
 }

 public int getFirstPage() {
  return 1;
 }

 public int getPreviousPage() {
  if (this.isHasPreviousPage()) {
   return currentPage - 1;
  }
  return currentPage;
 }

 public int getNextPage() {
  if (this.isHasNextPage()) {
   return currentPage + 1;
  } else {
   return currentPage;
  }
 }

 public int getLastPage() {
  return pageCount;
 }

 /**
  * 获取页数据
  *
  * @return ArrayList
  */
 public ArrayList getArrayList() {

  ArrayList list = new ArrayList();
  for (int i = beginPosition; i <= endPosition; i++) {
   list.add(arrayList.get(i - 1));
  }
  return list;

 }
}

  评论这张
 
阅读(1313)| 评论(3)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017