public class PageUtil {
private int totalCount;//总数
private int pageSize=10;//每页显示数量
private int currpageNum;//当前页
private int pageCount;//总页数
private int prePage;//上一页
private int nextPage;//下一页
private boolean hasPrePage;//是否有上一页
private boolean hasNextPage;//是否有下一页
private int firstPage;//第一页
private int lastPage;//最后一页
private int currentcount;//当前从第多少条数据开始显示 public PageUtil() { }
public PageUtil(int totalCount,int pageNum){
this.totalCount =totalCount;
this.currpageNum=pageNum;
this.pageCount = (int) Math.ceil(1.0*totalCount/pageSize);
this.currentcount =(pageCount-1)*pageSize;
if(pageNum>1){ //判断是不是第一页
/*--不是第一页 则有上一页 ,也有第一页--*/
hasPrePage=true;
prePage = pageNum-1;
firstPage =1;
}
if(pageNum<pageCount){//判断是不是最后一页
/*--不是最后一页 则有上一页 ,也有最后一页--*/
hasNextPage=true;
nextPage=pageNum+1;
lastPage=pageCount;
}
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.pageCount = (int) Math.ceil(1.0*totalCount/pageSize);
if(this.currpageNum < 1)
{
this.currpageNum = 1 ;
}
this.currentcount =(currpageNum-1)*pageSize;
if(currpageNum>1){ //判断是不是第一页
/*--不是第一页 则有上一页 ,也有第一页--*/
hasPrePage=true;
prePage = currpageNum-1;
firstPage =1;
}
if(currpageNum<pageCount){//判断是不是最后一页
/*--不是最后一页 则有上一页 ,也有最后一页--*/
hasNextPage=true;
nextPage=currpageNum+1;
lastPage=pageCount;
}
this.totalCount = totalCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPrePage() {
return prePage;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public boolean isHasPrePage() {
return hasPrePage;
}
public void setHasPrePage(boolean hasPrePage) {
this.hasPrePage = hasPrePage;
}
public boolean isHasNextPage() {
return hasNextPage;
}
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
} public int getCurrpageNum() {
return currpageNum;
}
public void setCurrpageNum(int currpageNum) {
this.currpageNum = currpageNum;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getCurrentcount() {
return currentcount;
}
public void setCurrentcount(int currentcount) {
this.currentcount = currentcount;
} }

说明:

 构造函数:  一个是无参的  一个是有参的;  不论使用哪个都需要先创建(new)对象, 当然也可以设置静态类;

无参构造函数:

  使用无参构造函数 ,只需要从数据库中查询到 数据的总条数 count(*),调用pageutil.setTotalCount("总的数据条数"), 就可以进行分页了; 默认每页10条数据

有参构造函数:

   使用有参构造函数 ,只需要从数据库中查询到 数据的总条数 count(*),并且传入要每页分多少条数据,初始化对象, 就可以进行分页了;

一般通过request.attribute("pageUtil",pageUtil),就可以在JSP页面进行分页

PageUtil ,简单的分页工具的更多相关文章

  1. PageUtil.java分页工具类

    package com.chabansheng.util; /** * 分页工具类 * @author Administrator * */ public class PageUtil { /** * ...

  2. pageUtil分页工具

    分页工具: https://www.cnblogs.com/ggq-insist-qiang/articles/10095603.html

  3. Js处理数据——前端分页工具

    这几天有小伙伴讨论起了分页的相关问题,这里我也简单讲下前端如何简单便捷的利用Js(库)写出优雅,好用的分页工具. 分页是个很简单又超多接触的技术点,粗略来讲分如下两种: 真分页--每次根据页码.页大小 ...

  4. 用Qt写软件系列三:一个简单的系统工具(上)

    导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统 ...

  5. 简单的分页存储过程,Json格式日期转换为一般日期

    简单的分页存储过程 CREATE PROC Paged @pageIndex INT, @pageCount INT OUTPUT, @pageSize INT AS DECLARE @count I ...

  6. jquery ajax json简单的分页,模拟数据,没有封装,只显示原理

    简单的分页,模拟数据,没有封装,显示原理,大家有兴趣可以自己封装,这里只是个原理过程,真正的分页也差不多是这个原理,只是请求数据不太一样,html部分: <!TOCTYPE HTML> & ...

  7. 只是一个用EF写的一个简单的分页方法而已

    只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...

  8. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  9. PHP常用之封装分页工具类

    分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然TP框架的灰常强大,但是自己封一个也未尝不可.),这样既省时又省力还赚'工分'. 我封的这个分页工具类还比较完 ...

随机推荐

  1. Java多线程(四)isAlive

    isAlive 活动状态:线程处于正在运行或准备开始运行的状态 public class ISLiveDemo extends Thread { public void run() { System. ...

  2. 三分 POJ 2420 A Star not a Tree?

    题目传送门 /* 题意:求费马点 三分:对x轴和y轴求极值,使到每个点的距离和最小 */ #include <cstdio> #include <algorithm> #inc ...

  3. C#学习-多线程小练习

    1.双色球案例 namespace _18双色球案例 { public partial class Form1 : Form { private bool IsRunning; private Lis ...

  4. 关于java的print()

    print方法是类PrintStream的方法成员,而System类有一个static的PrintStream类型的属性成员,名叫out,我们平时写的System.out.print("he ...

  5. 安装linux mint 18.3 后要做的

    使用u盘安装的linux mint 18.3,安装过程基本顺利 发现在安装过程中使用中文语言的话会使得下载附加软件的速度快很多 安装完成之后要做的事情有: 1.字体 默认的楷体字比较难看,在软件管理器 ...

  6. PHP语言开发Paypal支付demo的具体实现

    如果我们的应用是面向国际的.那么支付的时候通常会考虑使用paypal.以下为个人写的一个paypal支付示例,已亲测可行.paypal有个很不错的地方就是为开发者提供了sandbox(沙箱)测试功能. ...

  7. 【Python-2.7】换行符和制表符

    在Python中换行符“\n”表示接下来的内容将会换到下一行显示,制表符“\t”表示下面的内容显示时在前面留出空白,如打印如下内容: Dear: I love you forever! 上面的一段话分 ...

  8. jq封装插件

    $.extend()拓展方法: $(function(){ $.extend({ money:function(){ alert("我要努力赚钱") }, money:functi ...

  9. crm01 Django-admin管理工具

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...

  10. swift中使用对象归档进行数据本地

    对象归档是ios持久化中的其中一种,也是很常用的一种.现在来看看swift是如何实现的.实现要点1),必须实现NSCoding的协议 import UIKit let path=(NSSearchPa ...