淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

spring + velocity实现分页程序

上一篇 / 下一篇  2008-09-01 17:52:25 / 个人分类:java性能监控与调优

这段时间用 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;

 }
}


TAG: java性能监控与调优 Spring velocity 分页

 

评分:0

我来说两句

Open Toolbar