Java如何实现分页

先阐述一下具体的思路:

  1. 第一步:编写一个分页的类里面包含了(第一页,最后一页,下一页,上一页,当前页,页码等等)对象和方法。
  2. 第二步:进行分页的业务处理。

> ------**分页类**------------package newRelease.dao;import java.util.ArrayList;
/*** * @author wfy*  分页算法  根据总记录数,和每页显示记录数实现分页功能* @param <T>*/
public class PageBean<T>{private ArrayList<T> pageList;  //ArrayList泛型private int pageSize;    //每页多少条记录private int rowCount;    //总共有多少条记录private int totalPage;   //总共有多少页private int currentPage;   //当前页码private boolean firstPage;  //第一页,bool类型private boolean lastPage;   //最后一页,bool类型private int previousPageCount;   //前一页private int nextPageCount;       //后一页private int beginPage;        //开始页private int endPage;          //尾页public PageBean(){pageSize = 4;     //设置一页只有4条记录}public void setPageList(ArrayList<T> pageList)  {this.pageList = pageList;    //设置PageList对象}public ArrayList<T> getPageList(){return pageList;}public int getRowCount(){return rowCount;}public void setRowCount(int rowCount){this.rowCount = rowCount;totalPage = rowCount % pageSize != 0 ? rowCount /                     pageSize + 1 : rowCount / pageSize;      //使用了if : 条件运算符}public int getCurrentPage(){return currentPage;}public void setCurrentPage(int currentPage){this.currentPage = currentPage;//判断如果超过了totalPageif(currentPage > totalPage){this.currentPage = totalPage;}if(currentPage < 1){this.currentPage = 1;}previousPageCount = currentPage - 1;nextPageCount = currentPage + 1;//如果当前页是第一页,则为首页if(this.currentPage == 1){firstPage = true;} else{firstPage = false;}if(this.currentPage == totalPage){lastPage = true;} else{lastPage = false;}//对需要显示的页码进行判断从beginPage开始,endPage结束beginPage = this.currentPage <= 5 ? 1 : this.currentPage;endPage =  beginPage >=totalPage - 5 ? totalPage:beginPage +5;if(endPage - 5 > 0 && endPage - 5 < beginPage){beginPage = endPage - 5;}}public int getPreviousPageCount(){return previousPageCount;}public int getNextPageCount(){return nextPageCount;}public int getPageSize(){return pageSize;}public void setPageSize(int pageSize){this.pageSize = pageSize;}public int getTotalPage(){return totalPage;}public boolean isFirstPage(){return firstPage;}public boolean isLastPage(){return lastPage;}public int getBeginPage(){return beginPage;}public int getEndPage(){return endPage;}
}

业务处理代码

 //获取页码String curPage = request.getParameter("curPage");//创建一个pageBean对象PageBean pageBean = new PageBean();//通过getNum()方法得到总记录条数rowCount = bookDAO.getNum();//把相关参数存放到pageBean对象中pageBean.setRowCount(rowCount);    pageBean.setCurrentPage(curPage);//把页码传递到getBook()方法中,得到相应的分页数据信息bookList = bookDAO.getBook(pageBean.getCurrentPage());//把booklist中的数据存放到pageBean中pageBean.setPageList(booksList);//用于参数传递request.setAttribute("pagebean", pageBean);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

删除服务中的mysql服务

以管理员身份运行命令提示符&#xff0c;然后输入sc delete mysql 这里的mysql是你服务中的mysql名&#xff08;有些可能是mysql5&#xff0c;或者之类&#xff09;。

2018.09.28 hdu5435A serious math problem(数位dp)

传送门 数位dp卡常题。 写了一发dfs版本的发现过不了233。 于是赶紧转循环版本。 预处理出f数组。f[i][j]f[i][j]f[i][j]表示前i位数异或和为j的方案数。 然后每次直接数位dp就行了。 代码&#xff1a; #include<bits/stdc.h> #define mod 1000000007 #define N 100005 #…

在有原来的数据的情况下,恢复数据库的数据

只要把mysql安装目录下的data文件中的ibdata1&#xff08;储存文件的数据&#xff09;替换&#xff0c;再把你的库名的文件&#xff08;只是表结构&#xff09;加进去。

photoshop切图

1.传统切图 &#xff08;1&#xff09;打开一个psd文件&#xff0c;选择ps左边菜单栏的裁剪工具&#xff0c;选择切片工具。首先我们对这个psd文件进行分析&#xff0c;有意识的将其划分成几个选区&#xff0c;然后通过鼠标的拖拽用切片工具将我们所需要的图案切下来&#xff0…

怎么在cmd中进入D盘下的文件夹

从cmd中进入D盘&#xff0c;在光标处输入“d:”(大小写都可以)&#xff0c;按enter进入。 进入D盘根目录后&#xff0c;如果想找到work文件夹可以在光标处输入“cd work”即可。

postgresql 高可用 etcd + patroni 之六 callback bind vip

os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 本篇blog介绍下 etcd patroni 发生切换时使用 callback 来重新设定 master 的 vip。 主要是方便自有机房或托管的&#xff0c;云环境貌似不能绑定固定的vip。 patroni 的一些参数 官方文档描述在callback时又这…

${ctx} 的那些事

JSP中路径路径繁多&#xff0c;采用绝对路径&#xff0c;${pageContext.request.contextPath} 作用&#xff1a;取出部署的应用程序名&#xff0c;这样不管如何部署&#xff0c;所有路径都是正确的。 可以在jsp中定义&#xff1a; <% taglib uri”http://Java.sun.com/js…

linux文件管理 - 系统目录结构

几乎所有的计算机操作系统都是用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件&#xff0c;以此类推形成一个树状的文件结构&#xff0c;由于其结构很像一棵树的分支, 所以该结构又被称为“目录树”。 Linux系统中也沿…

JSP传值

当从点击JSP页面中的链接时&#xff0c;会执行相关操作&#xff0c;把后台所需要的参数传递过去。 最常见的是通过form表单的形式传递。如下代码所示 <s:form action"LoginAction.action" method"post"><s:textfield label"用户名" n…

nginx反向代理获取用户真实ip

nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用request.getRemoteAddr();获取到的是nginx的ip地址,而不是用户的真实ip. 修改nginx配置,如下: upstream www.xxx.com {ip_hash;server serving-server1.com:80…

Action 跳转的方法和详解

在实际项目中&#xff0c;我们难免遇到页面跳转&#xff0c;传参&#xff0c;action与action之间的跳转&#xff0c;我们这时候则需要一些方法来完成&#xff0c;如下代码所示&#xff1a; <action name"login" class"loginAction.class"><resul…

java和C++有什么异同

相同点&#xff1a; java和C都是面向对象语言&#xff0c;都使用了面向对象的基本思想&#xff08;抽象、封装、继承、多态&#xff09;&#xff0c;都具有面向对象的基本特性&#xff08;继承、组合等&#xff09;。 不同点&#xff1a; ①&#xff1a;java为解释性语言&#…

Hibernate 语句总结

关系映射数据库Hibernate使用详解&#xff1a; 在hql语句中&#xff0c;from后面接的不是表名&#xff0c;是实体名&#xff0c;from User 注&#xff1a;User是实体名&#xff0c;不是数据库中的表名。 查询并返回表中的数量&#xff1a; String sql "select count(*…

DataGrid数据绑定

后台数据绑定 用户场景是生成报表&#xff0c;展示公司各员工每个月的绩效 数据结构 包括报表和单个员工绩效两个实体 public class Report {/// <summary>/// 统计时间/// </summary>public string StatisticalDate { get; set; }public List<ReportDetail>…

String.valueOf() 和 toString的区别

当我们使用对象转换为String类型时 在使用toString()方法中&#xff0c;因为java.lang.Object类里已有public方法.toString()&#xff0c;所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意&#xff0c;必须保证object不是null值&#xff0c;否则将抛出NullP…

[转]Angular2 使用管道Pipe以及自定义管道格式数据

本文转自&#xff1a;https://www.pocketdigi.com/20170209/1563.html 管道(Pipe)可以根据开发者的意愿将数据格式化&#xff0c;还可以多个管道串联。 纯管道(Pure Pipe)与非纯管道(Impure Pipe) 管道分纯管道(Pure Pipe)和非纯管道(Impure Pipe)。默认情况下&#xff0c;管道…

解决Ajax返回的json数据乱码问题

有以下两种方式&#xff1a; 直接设置编码格式&#xff1a; response.setCharacterEncoding("utf-8");设置客户端浏览器的html的编码格式&#xff1a;response.setContentType("text/html; charsetutf-8");

BRVAH(让RecyclerView变得更高效)(1)

本文来自网易云社区作者&#xff1a;吴思博对于RecyclerView&#xff0c; 我们重复编写着那一个又一个的列表界面&#xff0c;有的要分组&#xff0c;有的要添加广告头部、有的要不同类型item排列、等等需求&#xff0c;主要代码有大部分是重复的&#xff0c;如果有一个框架能够…

校验输入的两次密码是否一致的问题

使用jQuery框架中的validate插件&#xff0c;messages为提示信息。首先导入相应的js文件。 <script src"js/jquery-1.8.2.js"></script> <script src"js/jquery.validate.min.js"></script> <script src"js/messages_zh.…

MySQL自动备份shell脚本

在数据库的日常维护工作中&#xff0c;除了保证业务的正常运行以外&#xff0c;就是要对数据库进行备份&#xff0c;以免造成数据库的丢失&#xff0c;从而给企业带来重大经济损失。通常备份可以按照备份时数据库状态分为热备和冷备&#xff0c;按照备份数据库文件的大小分为增…