Page的实体类

本文介绍了一个简单的分页查询实现方案,包括如何计算总页数、确定当前页的起始位置等关键步骤,并提供了判断是否为第一页、是否有下一页等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Pages implements Serializable {
     private static final long serialVersionUID = -3198048449643774660L;  
     private int pageNow = 1; // 当前页数  
      
     private int pageSize = 5; // 每页显示记录的条数  
      
     private int totalCount; // 总的记录条数  
      
      private int totalPageCount; // 总的页数  
      private int startPos;  // 开始位置,从0开始  
      private boolean hasFirst;// 是否有首页  
      private boolean hasPre;// 是否有前一页  
      
      private boolean hasNext;// 是否有下一页  
      private boolean hasLast;// 是否有最后一页  
      /**
         * 通过构造函数 传入  总记录数  和  当前页
         * @param totalCount
         * @param pageNow
     * @return
         */  
        public  Pages(int totalCount, int pageNow) {  
            this.totalCount = totalCount;  
            this.pageNow = pageNow;  
        }
        /**
         * 取得总页数,总页数=总记录数/总页数
         * @return
         */  
        public int getTotalPageCount() {  
            totalPageCount = getTotalCount() / getPageSize();  
            return (totalCount % pageSize == 0) ? totalPageCount  
                    : totalPageCount + 1;  
        }
        public void setTotalPageCount(int totalPageCount) {  
            this.totalPageCount = totalPageCount;  
        }  
      
        public int getPageNow() {  
            return pageNow;  
        }  
      
        public void setPageNow(int pageNow) {  
            this.pageNow = pageNow;  
        }  
      
        public int getPageSize() {  
            return pageSize;  
        }  
      
        public void setPageSize(int pageSize) {  
            this.pageSize = pageSize;  
        }  
      
        public int getTotalCount() {  
            return totalCount;  
        }  
      
        public void setTotalCount(int totalCount) {  
            this.totalCount = totalCount;  
        }
        /**
         * 取得选择记录的初始位置
         * @return
         */  
        public int getStartPos() {  
            return (pageNow - 1) * pageSize;  
        }  
      
        public void setStartPos(int startPos) {  
            this.startPos = startPos;  
        }
        /**
         * 是否是第一页
         * @return
         */  
        public boolean isHasFirst() {  
            return (pageNow == 1) ? false : true;  
        }  
      
        public void setHasFirst(boolean hasFirst) {  
            this.hasFirst = hasFirst;  
        }
        /**
         * 是否有首页
         * @return
         */  
        public boolean isHasPre() {  
            // 如果有首页就有前一页,因为有首页就不是第一页  
            return isHasFirst() ? true : false;  
        }  
      
        public void setHasPre(boolean hasPre) {  
            this.hasPre = hasPre;  
        }
        /**
         * 是否有下一页
         * @return
         */  
        public boolean isHasNext() {  
            // 如果有尾页就有下一页,因为有尾页表明不是最后一页  
            return isHasLast() ? true : false;  
        }  
      
        public void setHasNext(boolean hasNext) {  
            this.hasNext = hasNext;  
        }  
        /**
         * 是否有尾页
         * @return
         */  
        public boolean isHasLast() {  
            // 如果不是最后一页就有尾页  
            return (pageNow == getTotalCount()) ? false : true;  
        }  
      
        public void setHasLast(boolean hasLast) {  
            this.hasLast = hasLast;  
        }
}

package com.model; import javax.servlet.http.HttpServletRequest; import java.util.*; /** * 说明:参数封装Map * @version */ public class PageData extends HashMap implements Map{ private static final long serialVersionUID = 1L; Map map = null; HttpServletRequest request; public PageData(HttpServletRequest request){ this.request = request; Map properties = request.getParameterMap(); Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); Entry entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if(null == valueObj){ value = ""; }else if(valueObj instanceof String[]){ String[] values = (String[])valueObj; for(int i=0;i<values.length;i++){ value = values[i] + ","; } value = value.substring(0, value.length()-1); }else{ value = valueObj.toString(); } returnMap.put(name, value); } map = returnMap; } public PageData() { map = new HashMap(); } @Override public Object get(Object key) { Object obj = null; if(map.get(key) instanceof Object[]) { Object[] arr = (Object[])map.get(key); obj = request == null ? arr:(request.getParameter((String)key) == null ? arr:arr[0]); } else { obj = map.get(key); } return obj; } public static boolean hasVal(PageData pd,String key){ return pd!=null&&pd;.containsKey(key)&&!pd.getString(key).isEmpty(); } public String getString(Object key) { return (String)get(key); } public Integer getInt(Object key) { return Integer.parseInt(getString(key)); } @SuppressWarnings("unchecked") @Override public Object put(Object key, Object value) { return map.put(key, value); } @Override public Object remove(Object key) { return map.remove(key); } public void clear() { map.clear(); } public boolean containsKey(Object key) { // TODO Auto-generated method stub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值