分页类实例 java
保存代码片段
分页类:
1 package cn.news.vo; 2 3 import java.util.List; 4 /** 5 * 用于在页面上使用的数据类,包含有分页的信息及相应的数据 6 * @author Administrator 7 * @param <T> 检索的数据实体类型 8 */ 9 public class PageData<T> { 10 private List<T> list ; 11 private boolean isFirst=false; //是否是首页 12 private boolean isEnd=false; //是否是尾页 13 private int page=1; //跳转页,默认为第一页 14 private int count=10; //每页的记录数,默认每页显示10条记录 15 private int totalPage; //总共的页码 16 private int totalRows; //总共的记录数 17 private int realRowIndex; //该分页在数据库中真实的记录行数 18 19 /** 20 * 在DaoImpl中取得查询实体的总记录后设置该属性 21 * 跳转的页面、每页的记录、总记录,三个已知可以确定本类中的分页属性 22 * @param totalRows 23 */ 24 public void setTotalRows(int totalRows) { 25 if (totalRows==0) { 26 totalPage = 1 ; 27 }else{ 28 this.totalPage = totalRows/count+1 ; //可以得到全部的页面 29 } 30 this.init(); //设置分页的基本数据 31 this.totalRows = totalRows; 32 } 33 34 public void init(){ //初始化分页的基本数据 35 if(page < 1){ 36 page = 1 ; 37 } 38 if(page<totalPage){ 39 if(page==1){ 40 isFirst = true ; 41 isEnd = false ; 42 } 43 }else if(page==totalPage){ 44 if (page==1) { 45 isFirst = true ; 46 isEnd = true ; 47 }else{ 48 isFirst = false ; 49 isEnd = true ; 50 } 51 }else if(page>totalPage){ 52 page = totalPage; 53 if (totalPage==1) { 54 isFirst = true ; 55 isEnd = true ; 56 }else { 57 isFirst = false ; 58 isEnd = true ; 59 } 60 } 61 realRowIndex = (page-1)*count ; 62 } 63 @Override 64 public String toString() { 65 return "PageData [isFirst=" + isFirst + ", isEnd=" + isEnd + ", page=" 66 + page + ", count=" + count + ", totalPage=" + totalPage 67 + ", totalRows=" + totalRows + ", realRowIndex=" + realRowIndex 68 + "]"; 69 } 70 public List<T> getList() { 71 return list; 72 } 73 public void setList(List<T> list) { 74 this.list = list; 75 } 76 public int getRealRowIndex() { 77 return realRowIndex; 78 } 79 public int getPage() { 80 return page; 81 } 82 public void setPage(int page) { 83 this.page = page; 84 } 85 public int getCount() { 86 return count; 87 } 88 public void setCount(int count) { 89 this.count = count; 90 } 91 public int getTotalPage() { 92 return totalPage; 93 } 94 public void setTotalPage(int totalPage) { 95 this.totalPage = totalPage; 96 } 97 public boolean getIsFirst() { 98 return isFirst; 99 } 100 public void setIsFirst(boolean isFirst) { 101 this.isFirst = isFirst; 102 } 103 public boolean getIsEnd() { 104 return isEnd; 105 } 106 public void setIsEnd(boolean isEnd) { 107 this.isEnd = isEnd; 108 } 109 public int getTotalRows() { 110 return totalRows; 111 } 112 }
使用 Hibernate 的 DaoImpl 中的方法:
1 public PageData<V> findOnPage(PageData<V> page) { 2 List<V> list = null ; 3 String hql = "from "+ this.entityClazz.getName()+" order by id desc"; 4 try { 5 page.setTotalRows(getTotalRows()); 6 list = this.getSession().createQuery(hql) 7 .setFirstResult(page.getRealRowIndex()) 8 .setMaxResults(page.getCount()) 9 .list(); 10 page.setList(list); 11 } catch (DataAccessResourceFailureException e) { 12 e.printStackTrace(); 13 } catch (HibernateException e) { 14 e.printStackTrace(); 15 } catch (IllegalStateException e) { 16 e.printStackTrace(); 17 } 18 return page; 19 }
前台导航栏(Struts2 标签):
1 pageData为 action 中的分页类的对象 2 3 <td> 4 <s:if test="pageData.isFirst"> 5 首页 | 6 上一页 | 7 </s:if> 8 <s:else> 9 <a href="newsAction-findByPage?pageData.page=1">首页</a> | 10 <a href="newsAction-findByPage?pageData.page=${pageData.page-1}">上一页</a> | 11 </s:else> 12 <s:if test="pageData.isEnd"> 13 下一页 | 14 尾页 | 15 </s:if> 16 <s:else> 17 <a href="newsAction-findByPage?pageData.page=${pageData.page+1}">下一页</a> | 18 <a href="newsAction-findByPage?pageData.page=${pageData.totalPage}">尾页</a> | 19 </s:else> 20 转到 <input type="text" style="width: 30px"> 页 21 <input type="button" value="跳转" />,共 ${pageData.totalPage} 页 22 </td>
转载于:https://www.cnblogs.com/evilgod528/archive/2012/08/01/2619051.html
分页类实例 java相关推荐
- php分页类代码带分页样式效果(转)
php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...
- JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例
JDK中提供的实现 在 Java 中,通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例. 1 ...
- java str2date,java date类与string类实例代码分享
Date类用来指定日期和时间,其构造函数及常用方法如下: publicDate() 从当前时间构造日期时间对象. publicStringtoString() 转换成字符串. publiclongge ...
- java 类无法实例_Java无法从类实例访问类方法
我已经定义了具有多种方法的A类.然后我有另一个类,即JSF的托管bean.在bean中我创建了一个A类实例,但后来我无法调用A类中的任何方法.所有字段都是公共的,方法范围也是公共的. 我认为这可能是因 ...
- java类初始化_Java的类/实例初始化过程
昨天看到群里面有人分享了一道题目,我答错了,于是趁机了解了下Java的类/对象初始化过程: 程序的输出见文章最后 程序A主要考察的是 类实例初始化 .简单验证了下,类实例初始化过程如下:父类实例初始化 ...
- Java分页类定义和使用
1 简介 在后端与前端进行交互的过程中,需要对后端得到的数据进行分页推送给前端,比如说在某个博客网站上某用户编写了100篇文档,但在页面展示时,可能在每个页面仅仅展示10条数据,如下图所示 因此,而且 ...
- phppage类封装分页功能_php封装的page分页类完整实例代码
效果图 1.测试实例test.php header("Content-Type: text/html; charset=utf-8"); date_default_timezone ...
- java里写分页,自己写的Java分页类
自己写的分页类 //分页类 package xiyou.cm.cattsoft.util; public class Page { private int totalRows;//总共记录数 priv ...
- Codeigniter分页类代码实例
2019独角兽企业重金招聘Python工程师标准>>> 控制器里: $this->load->model('review_model');$this->load-& ...
最新文章
- Java Web 分页实现
- 欧拉降幂(Euler_Power_Formula)
- jquery与ajax的XMLHttpRequest对象介绍
- How many ways HDU - 1978(记忆化搜索关于求多少种方式模板)
- 能改变原生web前端元素样式的water.css
- 农村电商的发展非常关键,那么农民要如何利用电商呢?
- linux命令及实例说明一:cd、ls、rmdir、rm、mkdir
- ERP人力资源管理系统
- 偏导数,雅可比矩阵(jacobi matrix),黑塞矩阵(Hessian matrix)
- 数学建模—一元回归分析
- UC_online在线抽奖_新浪UC(Tab页功能)
- php strpos 编码问题,php-关于strpos的问题。 如何获得第二次出现的字符串?
- 利用charles 抓取ios app的https数据包-----软件配置和抓取步骤
- android自定义金额输入键盘_触摸键盘的设计解析
- 持久化技术——游戏玩家信息管理(基于 SQLite)
- Oracle系列之add_months简介以及用法归纳教程
- JetBrains 又出了一款新神器,一套代码适应多端!
- 冶炼金属【暴力枚举 + 二分 + 二元不等式】
- 编译 puppy linux,Puppy Linux import gtk在Python中抛出错误
- html5简单企业网站,HTML5企业网站极简大气模板
热门文章
- ssldump0.9b3版本的源码分析
- Python Demo 05--四大名著词云
- Disruptor编程指南
- Scala中的延迟初始化(Lazy vals)
- 使用Sense操作ElasticSearch CRUD
- Kafka设计原理看了又忘,忘了又看?
- webpack4.x最详细入门讲解
- 2017夏季达沃斯今日开幕,人工智能元素尤其突出
- charles抓包出现乱码 SSL Proxying not enabled for this host:enable in Proxy Setting,SSL locations...
- Docker远程TLS管理