- package org.yufeng.utils;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- public class PageService {
- private int pageId = 1;// 表示当前请求的分页号
- private int pageSize; // 每页显示的记录数
- private int rows; // 记录总数
- private int total; // 总共的页数
- public int getPageId() {
- return pageId;
- }
- public void setPageId(int pageId) {
- if (pageId <= 0) {
- pageId = 1;
- }
- this.pageId = pageId;
- }
- public int getPageSize() {
- return pageSize;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- public void setRows(List list) {
- this.rows = list.size();
- }
- public int getRows() {
- return rows;
- }
- public void setTotal(List list) {// 该方法用来求得,总共的页数
- total = list.size() / pageSize;// 该语句用来求得除pageSize的整数
- int e = list.size() % pageSize;// 该语句用来求得相除后的余数
- if (e != 0) {// 如果余数不为零,则total加一
- this.total = this.total + 1;
- }
- }
- public int getTotal() {
- return total;
- }
- public List getPage(String page_Id,int pageSize,List alllist){
- if(null == page_Id){
- page_Id = "1";
- }
- //设置请求分页号
- setPageId(Integer.parseInt(page_Id));
- //设置分页的记录数
- setPageSize(pageSize);
- //设置记录总数
- setRows(alllist);
- //设置总共的页数
- setTotal(alllist);
- int start = 0;
- int end = 0;
- Collections.reverse(alllist);
- List res = new ArrayList();
- if (pageId <= 1) {// 如果所给定的页号大于或等于最大页号,则返回最后几条
- start = 0;
- if (alllist.size() < pageSize) {
- end = alllist.size();
- } else {
- end = pageSize;
- }
- } else if (pageId * pageSize <= alllist.size()) {
- start = (pageId - 1) * pageSize;
- end = pageId * pageSize;
- } else if (pageId * pageSize >= alllist.size()) {
- start = (pageId - 1) * pageSize;
- end = alllist.size();
- }
- res = alllist.subList(start, end);
- return res;
- }
- public String getPageFooter(String path,String action){ // 显示上下翻页
- String str = "";
- int to_tal = total-(total-1);
- int next, prev;
- prev = pageId - 1;
- next = pageId + 1;
- if(pageId>1){
- str += "<a href="+path+"?method="+action+"&pageId="+to_tal+">『首页』 </a>";
- }else{
- str += "『首页』 ";
- }
- if(pageId>1){
- str += "<a href="+path+"?method="+action+"&pageId="+prev+">『上一页』 </a>";
- }else{
- str += "『上一页』 ";
- }
- if(pageId<total){
- str += "<a href="+path+"?method="+action+"&pageId="+next+">『下一页』 </a>";
- }else{
- str += "『下一页』 ";
- }
- if(pageId<total){
- str += "<a href="+path+"?method="+action+"&pageId="+total+">『尾页』 </a>";
- }else{
- str += "『尾页』 ";
- }
- str += "『共"+total+"页』 『总"+rows+"条』";
- return str;
- }
- }