paginationCode(hibenagte蛍匈) - 園殻秘壇利
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-20
is.pageNumber = (getTotalNumberOfElements() / this.pageSize); /** * todo: this no more makes sense, as we know the total number of elements * * We set the max results to one more than the specfied pageSize to * determine if any more results exist (i.e. if there is a next page * to display). The result set is trimmed down to just the pageSize * before being displayed later (in getThisPageElements()). */ elements = query.setFirstResult(this.pageNumber * this.pageSize).setMaxResults(this.pageSize + 1).list(); } private int calculateTotalElementsByList(Query query) throws HibernateException { return query.list().size(); } } package org.jblooming.page; import org.apache.log4j.Logger; import org.jblooming.tracer.Tracer; import java.util.List; /** * @author Pietro Polsinelli ppolsinelli@open-lab.com */ public class ListPage implements Page { private List elements; private int pageSize; private int pageNumber; /** * Construct a new ListPage. ListPage numbers are zero-based, so the * first page is page 0. * * @param pageNumber the page number (zero-based); * if Integer.MAX_VALUE will return the last page for the query * @param pageSize the number of results to display on the page */ public ListPage(List elements, int pageNumber, int pageSize) { this.elements = elements; this.pageSize = pageSize; this.pageNumber = pageNumber; if (Integer.MAX_VALUE == this.pageNumber) this.pageNumber = (getTotalNumberOfElements() / this.pageSize); } public boolean isFirstPage() { return getPageNumber() == 0; } public boolean isLastPage() { return getPageNumber() >= getLastPageNumber(); } public boolean hasNextPage() { return ((getPageNumber() + 1) * getPageSize()) < (getTotalNumberOfElements() + 1); } public boolean hasPreviousPage() { return getPageNumber() > 0; } public int getLastPageNumber() { /* * We use the Math.floor() method because page numbers are zero-based * (i.e. the first page is page 0). */ double totalResults = new Integer(getTotalNumberOfElements()).doubleValue(); return new Double(Math.floor(totalResults / getPageSize())).intValue(); } public List getThisPageElements() { /* * Since we retrieved one more than the specified pageSize when the * class was constructed, we now trim it down to the pageSize if a next * page exists. */ final int start = getPageNumber() * getPageSize(); return elements.subList(Math.min(start, getTotalNumberOfElements() + 1), Math.min(start + getPageSize(), getTotalNumberOfElements() + 1)); } public Logger getLogger() { return Tracer.hibernateLogger; } /** * this is 0-based, differently from list.size(); */ public int getTotalNumberOfElements() { return elements.size() - 1; } public int getThisPageFirstElementNumber() { return getPageNumber() * getPageSize() + 1; } public int getThisPage |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于paginationCode(hibenagte蛍匈) - 園殻秘壇利的所有评论