保存代码片段

分页类:

分页类,点击查看

  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 中的方法:

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               &nbsp;首页&nbsp;|&nbsp;
 6               上一页&nbsp;|&nbsp;
 7           </s:if>
 8         <s:else>
 9             <a href="newsAction-findByPage?pageData.page=1">首页</a>&nbsp;|&nbsp;
10             <a href="newsAction-findByPage?pageData.page=${pageData.page-1}">上一页</a>&nbsp;|&nbsp;
11         </s:else>
12         <s:if test="pageData.isEnd">
13             下一页&nbsp;|&nbsp;
14             尾页&nbsp;|&nbsp;
15         </s:if>
16         <s:else>
17             <a href="newsAction-findByPage?pageData.page=${pageData.page+1}">下一页</a>&nbsp;|&nbsp;
18             <a href="newsAction-findByPage?pageData.page=${pageData.totalPage}">尾页</a>&nbsp;|&nbsp;
19         </s:else>
20             转到&nbsp;<input type="text" style="width: 30px">&nbsp;页
21             <input type="button" value="跳转" />,共&nbsp;${pageData.totalPage}&nbsp;页
22         </td>

转载于:https://www.cnblogs.com/evilgod528/archive/2012/08/01/2619051.html

分页类实例 java相关推荐

  1. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

  2. JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例

    JDK中提供的实现 在 Java 中,通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例. 1 ...

  3. java str2date,java date类与string类实例代码分享

    Date类用来指定日期和时间,其构造函数及常用方法如下: publicDate() 从当前时间构造日期时间对象. publicStringtoString() 转换成字符串. publiclongge ...

  4. java 类无法实例_Java无法从类实例访问类方法

    我已经定义了具有多种方法的A类.然后我有另一个类,即JSF的托管bean.在bean中我创建了一个A类实例,但后来我无法调用A类中的任何方法.所有字段都是公共的,方法范围也是公共的. 我认为这可能是因 ...

  5. java类初始化_Java的类/实例初始化过程

    昨天看到群里面有人分享了一道题目,我答错了,于是趁机了解了下Java的类/对象初始化过程: 程序的输出见文章最后 程序A主要考察的是 类实例初始化 .简单验证了下,类实例初始化过程如下:父类实例初始化 ...

  6. Java分页类定义和使用

    1 简介 在后端与前端进行交互的过程中,需要对后端得到的数据进行分页推送给前端,比如说在某个博客网站上某用户编写了100篇文档,但在页面展示时,可能在每个页面仅仅展示10条数据,如下图所示 因此,而且 ...

  7. phppage类封装分页功能_php封装的page分页类完整实例代码

    效果图 1.测试实例test.php header("Content-Type: text/html; charset=utf-8"); date_default_timezone ...

  8. java里写分页,自己写的Java分页类

    自己写的分页类 //分页类 package xiyou.cm.cattsoft.util; public class Page { private int totalRows;//总共记录数 priv ...

  9. Codeigniter分页类代码实例

    2019独角兽企业重金招聘Python工程师标准>>> 控制器里: $this->load->model('review_model');$this->load-& ...

最新文章

  1. Java Web 分页实现
  2. 欧拉降幂(Euler_Power_Formula)
  3. jquery与ajax的XMLHttpRequest对象介绍
  4. How many ways HDU - 1978(记忆化搜索关于求多少种方式模板)
  5. 能改变原生web前端元素样式的water.css
  6. 农村电商的发展非常关键,那么农民要如何利用电商呢?
  7. linux命令及实例说明一:cd、ls、rmdir、rm、mkdir
  8. ERP人力资源管理系统
  9. 偏导数,雅可比矩阵(jacobi matrix),黑塞矩阵(Hessian matrix)
  10. 数学建模—一元回归分析
  11. UC_online在线抽奖_新浪UC(Tab页功能)
  12. php strpos 编码问题,php-关于strpos的问题。 如何获得第二次出现的字符串?
  13. 利用charles 抓取ios app的https数据包-----软件配置和抓取步骤
  14. android自定义金额输入键盘_触摸键盘的设计解析
  15. 持久化技术——游戏玩家信息管理(基于 SQLite)
  16. Oracle系列之add_months简介以及用法归纳教程
  17. JetBrains 又出了一款新神器,一套代码适应多端!
  18. 冶炼金属【暴力枚举 + 二分 + 二元不等式】
  19. 编译 puppy linux,Puppy Linux import gtk在Python中抛出错误
  20. html5简单企业网站,HTML5企业网站极简大气模板

热门文章

  1. ssldump0.9b3版本的源码分析
  2. Python Demo 05--四大名著词云
  3. Disruptor编程指南
  4. Scala中的延迟初始化(Lazy vals)
  5. 使用Sense操作ElasticSearch CRUD
  6. Kafka设计原理看了又忘,忘了又看?
  7. webpack4.x最详细入门讲解
  8. 2017夏季达沃斯今日开幕,人工智能元素尤其突出
  9. charles抓包出现乱码 SSL Proxying not enabled for this host:enable in Proxy Setting,SSL locations...
  10. Docker远程TLS管理