频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
Java 常用工具类之 分页处理详解
2018-03-02 13:51:46         来源:Lxinccode的博客  
收藏   我要投稿

Controller

	@RequestMapping("/website_search")
	public String websiteSearch(Model model,
			HttpServletRequest request, @RequestParam(value = "page", required = false) Integer page) {

分页工具类,根据搜索的结果进行分页

import java.util.List;  
  
import com.pro.huanbao.common.pojo.PageDatas;  
  
/** 
 * @Title   PagingUtils.java 
 * @Package com.pro.huanbao.common.utils 
 * @author  wanpu_ly 
 * @dade    2017年11月3日 上午11:10:09 
 * @version V1.0 
 * 类说明: 分页 
 */  
public class PagingUtils {  
  
    /** 
     * @Title   paging      
     * @param   @param page         当前页 
     * @param   @param allDatas     需要分页的数据集 
     * @param   @param currentSize  每页数据条数 
     * @param   @return       
     * @return  PageDatas<E> 
     */  
    public static <E> PageDatas<E> paging(Integer page, List<E> allDatas , Integer currentSize) {  
        try {  
            if(allDatas.size() == 0)  
                return null;  
            if (page == null || page == 0)  
                page = 1;  
            // 总记录数  
            long total = allDatas.size();//21  
            // 总页数  
            int pages;//2  
            // 每页记录数  
            if (total < currentSize) {  
                pages = 1;  
            }else {  
                if (total % currentSize == 0) {  
                    pages = (int) (total / currentSize);  
                } else {  
                    pages = (int) (total / currentSize + 1);  
                }  
            }  
            // 当前页数据第一个索引  
            int currentPage ;  
            if (page == 1) {  
                currentPage = 0;  
            }else {  
                currentPage = (page - 1) * currentSize;//20  
            }  
            // 当前页数据最后一个索引  
            int finalRecord;  
            // 当前页数据集  
            List<E> datas = null;  
            if (currentSize >= total) {  
                finalRecord = (int) total;  
            }else if (page == pages) {  
                finalRecord = (int) total;  
            }else {  
                finalRecord = currentPage + currentSize;  
            }  
            if (currentPage > total || finalRecord > total) {  
                return null;  
            }  
            if (currentSize >= total) {  
                datas = allDatas;  
            } else {  
                datas = allDatas.subList(currentPage, finalRecord);  
            }  
  
            PageDatas<E> pageDatas = new PageDatas<E>(total, pages, datas);  
            return pageDatas;  
        } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
}  

分页pojo

import java.io.Serializable;  
import java.util.List;  
  
/** 
 * @Title PageDatas.java 
 * @Package com.pro.huanbao.common.pojo 
 * @author wanpu_ly 
 * @dade 2017年10月24日 上午8:56:05 
 * @version V1.0 类说明: 分页数据传递类 
 */  
public class PageDatas<E> implements Serializable{  
  
    /** 
     *  
     */  
    private static final long serialVersionUID = 7216920941926389211L;  
    // 总记录数  
    private long total;  
    // 总页数  
    private int pages;  
    // 当前页数据  
    private List<E> datas;  
  
    public PageDatas(long total, int pages, List<E> datas) {  
        super();  
        this.total = total;  
        this.pages = pages;  
        this.datas = datas;  
    }  
  
    public long getTotal() {  
        return total;  
    }  
  
    public void setTotal(long total) {  
        this.total = total;  
    }  
  
    public int getPages() {  
        return pages;  
    }  
  
    public void setPages(int pages) {  
        this.pages = pages;  
    }  
  
    public List<E> getDatas() {  
        return datas;  
    }  
  
    public void setDatas(List<E> datas) {  
        this.datas = datas;  
    }  
  
}  

html

<p class="clearfix" id="page-change"></p>  
<input class="get-pages" type="hidden" name="pages" value="总页数">  

效果图, 根据总页数自动进行分页,点击时自动在地址栏后加?page=当前页

\
点击复制链接 与好友分享!回本站首页
上一篇:JAVA Struts的线程安全对比
下一篇:Java基础之Object类和重写equals方法讲解
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站