通用分页帮助类

原创 2012年03月23日 14:59:35

package utils;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

/**
 * 分页JavaBean
 *
 *
 */
public class PageBean {
 /* 当前页 */
 private int curPage = 1;

 /* 总记录数 */
 private int totalRecord = 0;

 /* 每页记录数 */
 private int pageRecord = 10;

 /* 是否分页,默认分页 */
 private boolean paginate = true;

 /* 请求的URL */
 private String url;

 /* 请求中的参数 */
 private Map<String, String[]> parameters = new HashMap<String, String[]>();

 public PageBean() {
  super();
 }

 public PageBean(HttpServletRequest request) {
  super();
  this.setRequest(request);
 }

 /**
  * 使用HttpServletRequest对象对分页Bean进行初始化
  *
  */
 @SuppressWarnings("unchecked")
 public void setRequest(HttpServletRequest request) {
  this.setCurPage(request.getParameter("curPage"));// 从请求中获取当前页
  this.setPageRecord(request.getParameter("pageRecord"));// 从请求中获取页大小
  this.setPaginate(request.getParameter("paginate"));// 获取用来判断是否分页的参数
  this.setUrl(request.getContextPath() + request.getServletPath());// 获取表示请求资源的URL
  this.setParameters(new HashMap<String, String[]>(request
    .getParameterMap()));// 获取请求中的所有参数
 }

 /**
  * true表示进行分页
  *
  * @return
  */
 public boolean isPaginate() {
  return paginate;
 }

 /**
  * 设置是否分页true分页,false不分页
  *
  * @param paginate
  */
 public void setPaginate(boolean paginate) {
  this.paginate = paginate;
 }

 /**
  * 设置是否分页true分页,false不分页
  *
  * @param paginate
  */
 public void setPaginate(String paginate) {
  if (null != paginate && paginate.trim().equalsIgnoreCase("false")) {
   this.setPaginate(false);
  } else {
   this.setPaginate(true);
  }
 }

 public Map<String, String[]> getParameters() {
  return parameters;
 }

 public void setParameters(Map<String, String[]> parameters) {
  this.parameters = parameters;
 }

 public String getUrl() {
  return url;
 }

 public void setUrl(String url) {
  this.url = url;
 }

 public int getCurPage() {
  return curPage;
 }

 public void setCurPage(int curPage) {
  if (curPage > 1) {
   this.curPage = curPage;
  }
 }

 public void setCurPage(String curPage) {
  if (null == curPage || curPage.trim().equals("")) {
   return;
  }
  int acurPage = Integer.parseInt(curPage);
  this.setCurPage(acurPage);
 }

 public int getPageRecord() {
  return pageRecord;
 }

 public void setPageRecord(int pageRecord) {
  this.pageRecord = pageRecord;
 }

 public void setPageRecord(String pageRecord) {
  if (null != pageRecord && !pageRecord.trim().equals("")) {
   this.pageRecord = Integer.parseInt(pageRecord);
  }
 }

 public int getTotalRecord() {
  return totalRecord;
 }

 public void setTotalRecord(int totalRecord) {
  this.totalRecord = totalRecord;
 }

 /**
  * 返回下一页页码
  *
  * @return
  */
 public int getNextPageNumber() {
  int nextPageNumber = this.curPage + 1;
  if (nextPageNumber > this.getMaxPageNumber()) {
   nextPageNumber = this.getMaxPageNumber();
  }
  return nextPageNumber;
 }

 /**
  * 返回上一页页码
  *
  * @return
  */
 public int getPreviousPageNumber() {
  int previousPageNumber = this.curPage - 1;
  if (previousPageNumber < 1) {
   previousPageNumber = 1;
  }
  return previousPageNumber;
 }

 /**
  * 返回最大页码编号
  *
  * @return
  */
 public int getMaxPageNumber() {
  int maxPageNumber = 1;
  if (this.totalRecord > this.pageRecord) {
   if (0 == this.totalRecord % this.pageRecord) {
    maxPageNumber = this.totalRecord / this.pageRecord;
   } else {
    maxPageNumber = this.totalRecord / this.pageRecord + 1;
   }
  }
  return maxPageNumber;
 }

 /**
  * 获取起始记录下标
  *
  * @return
  */
 public int getStartRecordIndex() {
  return this.pageRecord * (this.curPage - 1);
 }

 /**
  * 获取结束记录下标
  *
  * @return
  */
 public int getEndRecordIndex() {
  int end = this.pageRecord * this.curPage - 1;
  if (end > (this.totalRecord - 1)) {
   end = (this.totalRecord - 1);
  }
  return end;
 }

 public String toString() {
  // 保存请求的参数到一个表单对象中,以供下次查询使用
  StringBuffer bf = new StringBuffer();
  bf.append("<form name='pageBeanForm' action='" + this.getUrl()
    + "' method='post'>");
  bf.append("<input type='hidden' name='curPage' value=''/>");// 当前页是目前是空,但在点击分页按钮时会进行设置
  Map<String, String[]> parameters = this.getParameters();// 请求中的所有参数
  String paramName = null;
  String[] paramValues = null;
  Iterator it = parameters.keySet().iterator();
  while (it.hasNext()) {
   paramName = (String) it.next();// 参数名
   if ("curPage".equals(paramName)) {
    continue;// 把当前页参数忽略掉
   }
   paramValues = parameters.get(paramName);// 参数值
   for (int i = 0; null != paramValues && i < paramValues.length; i++) {
    bf.append("<input type='hidden' name='" + paramName
      + "' value='" + paramValues[i] + "'/>");
   }
  }
  bf.append("</form>");

  // 显示分页按钮
  bf.append("每页 " + this.getPageRecord() + " 行");
  bf.append(" 共 " + this.getTotalRecord() + " 行");
  bf.append(" 第 " + this.getCurPage() + " 页");
  bf.append(" 共 " + this.getMaxPageNumber() + " 页");
  bf.append(" <a href='javascript:gotoPage(" + 1 + ")'>首页</a>");
  bf.append(" <a href='javascript:gotoPage("
    + this.getPreviousPageNumber() + ")'>上一页</a>");
  bf.append(" <a href='javascript:gotoPage(" + this.getNextPageNumber()
    + ")'>下一页</a>");
  bf.append(" <a href='javascript:gotoPage(" + this.getMaxPageNumber()
    + ")'>尾页</a>");
  bf.append(" 页数 <input type='text' id='pageNumber'  style='width:20px;' /> <a href='javascript:jumpPage()'>GO</a>");

  // 动态生成js
  bf.append("<script>");
  bf.append("function gotoPage(curPage){document.pageBeanForm.curPage.value=curPage;document.pageBeanForm.submit();}");
  bf.append("var maxPageNumber =" + this.getMaxPageNumber() + ";");
  bf.append("function jumpPage(){var curPage=document.getElementById('pageNumber').value;if(curPage==''||isNaN(curPage)||parseInt(curPage)<1||parseInt(curPage)>maxPageNumber){alert('请输入一个正确的页码');return;}gotoPage(curPage);}");
  bf.append("</script>");
  return bf.toString();
 }
}

EF通用增删改查分页帮助类

public class BaseDAL where T:class,new()     {         ///         /// 数据上下文对象         ///   ...

通用分页工具类PageInfo.java

  • 2012年05月25日 14:47
  • 2KB
  • 下载

JDBC分页与数据连接通用类.ppt

  • 2012年05月29日 07:10
  • 266KB
  • 下载

PHP通用分页(Pager)类

三种不同展示方式 附上style~ 1. 效果图1 2.效果图2  3. 效果图3 4. 分页类主体 001 ...
  • aerchi
  • aerchi
  • 2014年07月14日 11:27
  • 1865

不使用存储过程的通用分页类

  • 2006年08月24日 11:11
  • 10KB
  • 下载

一个通用的数据库分页类

  • 2004年08月02日 13:34
  • 1KB
  • 下载

Java物理通用分页类实现

有时候项目中会用到物理分页类,顾名思义物理分页就是假分页,就是查询所有的数据封装到List然后再分页,我这边的需要是redis分页查询用到,具体代码如下: import java.util.Arra...

php分页类(通用)

  • 2012年06月04日 14:01
  • 2KB
  • 下载

PHP通用的数据库分页类

  • 2008年11月19日 19:45
  • 3KB
  • 下载

php页面分页类通用

分页显示是我们常常需要用到的,所以我为大家写了一个分页类,大家只用导入相应的项目就可以使用了! Page.class.php class Page {     private...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通用分页帮助类
举报原因:
原因补充:

(最多只允许输入30个字)