首先封装一个分页类

  1. public class Page<T> {
  2. /**
  3. * 当前页号
  4. */
  5. private int pageNumber;
  6. /**
  7. * 总条数
  8. */
  9. private int totalCount;
  10. /**
  11. * 总页数
  12. */
  13. private int totalPage;
  14. /**
  15. * 每页显示的数量
  16. */
  17. private int pageSize;
  18. /**
  19. * 当前页的数据
  20. */
  21. private List<T> item;
  22.  
  23. /**
  24. * 当前起始行号
  25. * @return
  26. */
  27. private int from;
  28.  
  29. public Page(){}
  30.  
  31. public Page(int pageSize,int totalCount,String pageNumber) {
  32. setPageSize(pageSize);
  33. setTotalCount(totalCount);
  34. setPageNumber(pageNumber);
  35. }
  36.  
  37. public int getPageNumber() {
  38. return pageNumber;
  39. }
  40. public void setPageNumber(String pageNumber) {
  41.  
  42. if(StringUtil.isNumber(pageNumber)){
  43. int tempNumber = Integer.parseInt(pageNumber);
  44. if(tempNumber < 1){
  45. tempNumber = 1;
  46. }else if(tempNumber > getTotalPage()){
  47. tempNumber = getTotalPage();
  48. }
  49.  
  50. this.pageNumber = tempNumber;
  51.  
  52. }else{
  53. this.pageNumber = 1;
  54. }
  55.  
  56. }
  57. public int getTotalCount() {
  58. return totalCount;
  59. }
  60. public void setTotalCount(int totalCount) {
  61. this.totalCount = totalCount;
  62.  
  63. this.totalPage = totalCount / getPageSize();
  64. if(totalCount % getPageSize() != 0) {
  65. this.totalPage++;
  66. }
  67.  
  68. }
  69. public int getTotalPage() {
  70. return totalPage;
  71. }
  72. /*public void setTotalPage(int totalPage) {
  73. this.totalPage = totalPage;
  74. }*/
  75. public int getPageSize() {
  76. return pageSize;
  77. }
  78. public void setPageSize(int pageSize) {
  79. this.pageSize = pageSize;
  80. }
  81. public List<T> getItem() {
  82. return item;
  83. }
  84. public void setItem(List<T> item) {
  85. this.item = item;
  86. }
  87. public int getFrom() {
  88. return (getPageNumber() - 1) * getPageSize();
  89. }
  90. public void setForm(int from) {
  91. this.from = from;
  92. }
  93.  
  94. public List<Integer> getSlider(){
  95.  
  96. int startPageNumber = getPageNumber() - 2;
  97. int endPageNumber = getPageNumber() + 2;
  98.  
  99. if(startPageNumber <= 0){
  100. endPageNumber -= startPageNumber - 1;
  101. startPageNumber = 1;
  102. }
  103.  
  104. if(endPageNumber > getTotalPage()){
  105. int temp = getTotalPage() - endPageNumber;
  106. endPageNumber = getTotalPage();
  107. startPageNumber = startPageNumber + temp;
  108. if(startPageNumber < 1){
  109. startPageNumber = 1;
  110. }
  111. }
  112.  
  113. List<Integer> result = new ArrayList<Integer>();
  114.  
  115. for(int i = startPageNumber;i <= endPageNumber;i++){
  116. result.add(i);
  117. }
  118.  
  119. return result;
  120. }
  121.  
  122. }

controller中

  1. Page<Active> page = new ActiveService().findByProjectid(projectid,pageNo);

service中

  1. public Page<Active> findByProjectid(String projectid, String pageNo) {
  2.  
  3. return activeDao.findAllByidAndPageNo(Long.valueOf(projectid),pageNo);
  4. }

dao中

  1. public Page<Active> findAllByidAndPageNo(Long projectid, String pageNo) {
  2.  
  3. String sql = "SELECT * FROM active,account WHERE active.accountid = account.id AND projectid = ? order by active.id desc limit ?,?";
  4.  
  5. Page<Active> page = new Page<Active>(5, findActiveCountByprojectid(projectid), pageNo);
  6. //因为返回的page中的item里是没有account信息的,但是在home.jsp中需要显示account的头像和姓名,所以要重写这个rowmapper
  7. List<Active> list = db.queryForList(sql, new RowMapper<Active>(){
  8.  
  9. @Override
  10. public Active mapRow(ResultSet rs) throws SQLException {
  11. Active active = new Active();
  12. active.setAccountid(rs.getLong("accountid"));
  13. active.setContext(rs.getString("context"));
  14. active.setCreatetime(rs.getTimestamp("createtime"));
  15. active.setId(rs.getLong("id"));
  16. active.setProjectid(rs.getLong("projectid"));
  17. active.setType(rs.getString("type"));
  18.  
  19. Account account = new Account();
  20. account.setId(rs.getLong("accountId"));
  21. account.setUsername(rs.getString("username"));
  22. account.setPic(rs.getString("pic"));
  23.  
  24. active.setAccount(account);
  25. return active;
  26. }
  27.  
  28. }, projectid,page.getFrom(),page.getPageSize());
  29.  
  30. page.setItem(list);
  31.  
  32. return page;
  33. }
  34. private int findActiveCountByprojectid(Long projectid) {
  35. String sql = "select count(*) from active where projectid = ?";
  36. return db.queryForCount(sql, projectid).intValue();
  37. }

page分页的更多相关文章

  1. page分页问题,根据页码获取对应页面的数据,接口调用

    添加一个log.js文件,进行接口调用. import axios from '@/libs/api.request' const MODULE_URL = '/log'; export const ...

  2. layui -page 分页类

    <?phpnamespace page; // +---------------------------------------------------------------------- / ...

  3. 封装page分页类

    类: <?php //分页工具类 class Page{ /*         * 获取分页字符串         * @param1 string $uri,分页要请求的脚本url       ...

  4. page分页类

    <?php /** file: Page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...

  5. java Page分页显示

    //entity层实体类 import java.util.List; //分页展示 //相关属性:当前页,页大小(每页显示的条数),总页数,总条数,数据 //select * from t_user ...

  6. jQuery.page 分页控件

    分享一下自己在项目中引用的Jquery分页控件 index.html内容 <!DOCTYPE html> <html lang="zh-cn" xmlns=&qu ...

  7. page 分页

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. MVC Page分页控件

    MVCPage帮助类 控制器代码 public ActionResult Article(int? page) { //Session["ArticleClass"] = cont ...

  9. JPA+Postgresql+Spring Data Page分页失败

    按照示例进行如下代码编写 Repository Page<DeviceEntity> findByTenantId(int tenantId, Pageable pageable); se ...

随机推荐

  1. nefu 462 fib组合

    nefu 462 fib组合 (斐波那契数列的通项公式以及推倒过程) 分类: 数学2014-05-21 10:27 190人阅读 评论(0) 收藏 举报 题目链接:http://acm.nefu.ed ...

  2. hdu 4741 Save Labman No.004(2013杭州网络赛)

    http://blog.sina.com.cn/s/blog_a401a1ea0101ij9z.html 空间两直线上最近点对. 这个博客上给出了很好的点法式公式了...其实没有那么多的tricky. ...

  3. UIImageView图片视图的基本概念和使用方法

    IOS学习笔记(十)之UIImageView图片视图的基本概念和使用方法(博客地址: http://blog.csdn.net/developer_jiangqq ) Author:hmjiangqq ...

  4. BNUOJ29065鸣人的查克拉

    鸣人的查克拉 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: ...

  5. 倒计时IE6+

    很简单的 下面是我为了做多个倒计时更改之后的 dome 下载链接   兼容 IE7以上 IE6没测试应该没问题 http://yunpan.cn/cf29rxmGKuMyJ  提取码 ca61

  6. jade初学

    jade是一个比ejs略难得模板.express的默认模本就是jade. 今天看了一下其实不是太难~~ 笔记: jade中使用缩进来定义HTML文档的层次结构 jade不需要关闭标签 给div添加id ...

  7. java web分享ppt大纲 -- servlet包

     概述 servlet相关代码所在包: javax.servlet javax.servlet.http 常用的功能模块 Servlet,filter,listener 常用的相关类: servlet ...

  8. CDH 无法查看history log

    1.配置(core-site.xml) <property>  <name>hadoop.http.staticuser.user</name>  <valu ...

  9. ajax+php如何获取部分请求的信息显示在对应的div中

    我该如何把需要显示的信息显示在文章列表中呢???

  10. IOS 表视图(UITableVIew)的使用方法(4)自定义表视图单元

    UITableViewCell的自定义往往需要自建一个UITableViewCell的子类后进行作业.开发者可以选择通过xib或者直接在UITableViewCell的布局中进行UITableView ...