PageService.java
上传用户:yunfeng252
上传日期:2022-07-23
资源大小:12403k
文件大小:3k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package org.yufeng.utils;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. public class PageService {
  6. private int pageId = 1;// 表示当前请求的分页号
  7. private int pageSize; // 每页显示的记录数
  8. private int rows; // 记录总数
  9. private int total; // 总共的页数
  10. public int getPageId() {
  11. return pageId;
  12. }
  13. public void setPageId(int pageId) {
  14. if (pageId <= 0) {
  15. pageId = 1;
  16. }
  17. this.pageId = pageId;
  18. }
  19. public int getPageSize() {
  20. return pageSize;
  21. }
  22. public void setPageSize(int pageSize) {
  23. this.pageSize = pageSize;
  24. }
  25. public void setRows(List list) {
  26. this.rows = list.size();
  27. }
  28. public int getRows() {
  29. return rows;
  30. }
  31. public void setTotal(List list) {// 该方法用来求得,总共的页数
  32. total = list.size() / pageSize;// 该语句用来求得除pageSize的整数
  33. int e = list.size() % pageSize;// 该语句用来求得相除后的余数
  34. if (e != 0) {// 如果余数不为零,则total加一
  35. this.total = this.total + 1;
  36. }
  37. }
  38. public int getTotal() {
  39. return total;
  40. }
  41. public List getPage(String page_Id,int pageSize,List alllist){
  42. if(null == page_Id){
  43. page_Id = "1";
  44. }
  45. //设置请求分页号
  46. setPageId(Integer.parseInt(page_Id));
  47. //设置分页的记录数
  48. setPageSize(pageSize);
  49. //设置记录总数
  50. setRows(alllist);
  51. //设置总共的页数
  52. setTotal(alllist);
  53. int start = 0;
  54. int end = 0;
  55. Collections.reverse(alllist);
  56. List res = new ArrayList();
  57. if (pageId <= 1) {// 如果所给定的页号大于或等于最大页号,则返回最后几条
  58. start = 0;
  59. if (alllist.size() < pageSize) {
  60. end = alllist.size();
  61. } else {
  62. end = pageSize;
  63. }
  64. } else if (pageId * pageSize <= alllist.size()) {
  65. start = (pageId - 1) * pageSize;
  66. end = pageId * pageSize;
  67. } else if (pageId * pageSize >= alllist.size()) {
  68. start = (pageId - 1) * pageSize;
  69. end = alllist.size();
  70. }
  71. res = alllist.subList(start, end);
  72. return res;
  73. }
  74. public String getPageFooter(String path,String action){ // 显示上下翻页
  75. String str = "";
  76. int to_tal = total-(total-1); 
  77. int next, prev;
  78. prev = pageId - 1;
  79. next = pageId + 1;
  80. if(pageId>1){
  81. str += "<a href="+path+"?method="+action+"&pageId="+to_tal+">『首页』  </a>";
  82. }else{
  83. str += "『首页』  ";
  84. }
  85. if(pageId>1){
  86. str += "<a href="+path+"?method="+action+"&pageId="+prev+">『上一页』  </a>";
  87. }else{
  88. str += "『上一页』  ";
  89. }
  90. if(pageId<total){
  91. str += "<a href="+path+"?method="+action+"&pageId="+next+">『下一页』  </a>";
  92. }else{
  93. str += "『下一页』  ";
  94. }
  95. if(pageId<total){
  96. str += "<a href="+path+"?method="+action+"&pageId="+total+">『尾页』  </a>";
  97. }else{
  98. str += "『尾页』  ";
  99. }
  100. str += "『共"+total+"页』  『总"+rows+"条』";
  101. return str;
  102. }
  103. }