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. [NOI2004]cashier 郁闷的出纳员

    Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...

  2. 【NOIP模拟赛】一道挖掉背景的数学题

    Title:[Empty] Time Limit:1000 ms Memory Limit:131072 KBytes Description 给定n与p,求\(\left\lfloor x^n\ri ...

  3. ACM_Hailstone HOTPO

    Hailstone HOTPO Time Limit: 2000/1000ms (Java/Others) Problem Description: The hailstone sequence is ...

  4. Android 性能优化(23)*性能工具之「Heap Viewer, Memory Monitor, Allocation Tracker」Memory Profilers

    Memory Profilers In this document Memory Monitor Heap Viewer Allocation Tracker You should also read ...

  5. select多选

    1.css <style> .divBox{ width:400px; margin:100px auto; } .divBox span{ vertical-align:top; dis ...

  6. VS2013使用单元测试

    一.开发环境 开发工具:VS2013 二.开发流程 1.添加一个控制台项目UnitDemo namespace UnitDemo { public class Program { static voi ...

  7. Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

    一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  8. Verification Mind Games---how to think like a verifier像验证工程师一样思考

    1. 有效的验证需要验证工程师使用不同于设计者的思维方式思考问题.具体来说,验证更加关心在严格遵循协议的基础上发现设计里面的bug,搜索corner cases,对设计的不一致要保持零容忍的态度. m ...

  9. 如何解决数据库中,数字+null=null

    如何解决数据库中,数字+null=null 我使用SQLServer,做一个 update 操作,累计一个数.在数据库中,为了方便,数据库中这个字段我设为允许为空,并且设置了默认值为 0 .但是在新增 ...

  10. 北大ACM(POJ1015-Jury Compromise)

    Question:http://poj.org/problem?id=1015 问题点:DP. Memory: 1352K Time: 94MS Language: C++ Result: Accep ...