最好用的分页代码(java版)

2021-09-24 20:33

package com.web.utils;

import java.io.Serializable;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import mons.logging.Log;

import mons.logging.LogFactory;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowCallbackHandler;

/**

* 分页代码

*

* @author Star

* @version 1.0 2008/07/08

*/

public class CutPage implements Serializable{

private static Log log = LogFactory.getLog(CutPage.class);

private int curPageNo = 0; // 当前页数,从0开始

private int size = 0; // 所有数据条数

private String url; // 页面跳转的路径

private List showList; // 当前页面需要显示的数据列表

private int pageSize = 20;// 每页显示的数据条数

private int groupSize = 1;// 多少页为一组

private String pageNavigation;// 导航条

/**

* 每次通过sql语句从数据库里面分组取出需要显示的数据

*

* @param request

* javax.servlet.http.HttpServletRequest对象

* @param sql

* String 查询数据库的sql语句

* @param pageSize

* int 每页显示的条数

* @param groupSize

* int 分成多少组

* @param url

* String 页面跳转的路径,若没有特殊的参数传递,可以传入null或"", * 如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

*/

public void init(HttpServletRequest request, String sql, int pageSize, int groupSize, int pageNo, String url) { // 上一页、下一页跳转路径 if (url != null) { this.url = url; } else { this.url = request.getRequestURL() + ""; } if (pageSize > 0) this.pageSize = pageSize;// 每页多少条记录 if (groupSize > 0) this.groupSize = groupSize; // 当前第几页 if (pageNo < 0) { this.curPageNo = 0; } else { this.curPageNo = pageNo; } int curGroup = this.curPageNo / this.groupSize + 1; // 是否是新的一组数据,如果是则到数据库取数据 this.size = parseInt(request.getSession().getAttribute("page_all_size") + "", 0); if (this.curPageNo % this.groupSize == 0 || (request.getSession().getAttribute("cur_group") != null && parseInt( "" + request.getSession().getAttribute("cur_group"), 1) != curGroup) || this.size == 0 || request.getParameter("reload") != null) { request.getSession().setAttribute("cur_group", curGroup); if (pageNo > 0 && request.getSession().getAttribute("page_sql") != null) { sql = request.getSession().getAttribute("page_sql") + ""; } else { request.getSession().setAttribute("page_sql", sql); } this.size = getTotalCount(sql); List list = getPageData(sql, (this.curPageNo / this.groupSize) * this.pageSize * this.groupSize, this.pageSize * this.groupSize); request.getSession().setAttribute("page_all_size", this.size); request.getSession().setAttribute("page_cur_list", list); this.setShowList(list);// 设置页面上的显示数据 } else { this.setShowList((List) request.getSession().getAttribute( "page_cur_list"));// 设置页面上的显示数据 }

}

/**

* 每次通过sql语句从数据库里面分组取出需要显示的数据

*

* @param request

* javax.servlet.http.HttpServletRequest对象

* @param sql

* String 查询数据库的sql语句

* @param pageSize

* int 每页显示的条数

* @param groupSize

* int 分成多少组

* @param url

* String 页面跳转的路径,若没有特殊的参数传递,可以传入null或"", * 如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

*/

public void init(HttpServletRequest request, String sql, int pageSize,

int groupSize, String url) {

// 当前第几页

String curPage = request.getParameter("pageNo");

init(request, sql, pageSize, groupSize, parseInt(curPage, -1), url);

}

/**

* 每次通过sql语句从数据库里面分组取出需要显示的数据

*

* @param request

* javax.servlet.http.HttpServletRequest对象

* @param sql

* String 查询数据库的sql语句

* @param pageSize

* int 每页显示的条数

* @param groupSize

* int 分成多少组

* @param url

* String 页面跳转的路径,若没有特殊的参数传递,可以传入null或"", * 如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

*/

public void init(HttpServletRequest request, String sql, int pageSize,

int groupSize, int pageNo) {

init(request, sql, pageSize, groupSize, pageNo, "");

}

/**

* 这种方式是一次性把所有的数据取出来,再分页显示


最好用的分页代码(java版).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:农村入党转正申请书2016大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: