用户操作
[即时聊天] [发私信] [加为好友]
神の熊猫ID:niubtangno1
5484次访问,排名17668(1),好友0人,关注者0人。
niubtangno1的文章
原创 19 篇
翻译 0 篇
转载 3 篇
评论 0 篇
最近评论
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 pageutil分页得到page类的类收藏

      新一篇: hql(部分函数) | 旧一篇: 时间转换格式问题

      package util;


      import org.apache.commons.logging.Log;  
      import org.apache.commons.logging.LogFactory;

      import com.unicSolution.common.model.data.Page;

      /**
       * 分页的相关内容计算
       *
       * @author aojia
       *
       */
      public class PageUtil {
       
       private static final Log logger = LogFactory.getLog(PageUtil.class);

       /**
        * Use the origin page to create a new page
        *
        * @param page
        * @param totalRecords
        * @return
        */
       public static Page createPage(Page page, int totalRecords) {
        return createPage(page.getEveryPage(), page.getCurrentPage(),
          totalRecords);
       }

       /**
        * the basic page utils not including exception handler
        *
        * @param everyPage 每页几条
        * @param currentPage 当前第几页
        * @param totalRecords 总共多少条记录
        * @return page
        */
       public static Page createPage(int everyPage, int currentPage,
         int totalRecords) {
        everyPage = getEveryPage(everyPage);
        currentPage = getCurrentPage(currentPage);
        int beginIndex = getBeginIndex(everyPage, currentPage);
        int totalPage = getTotalPage(everyPage, totalRecords);
        boolean hasNextPage = hasNextPage(currentPage, totalPage);
        boolean hasPrePage = hasPrePage(currentPage);

        return new Page(hasPrePage, hasNextPage, everyPage, totalPage,
          currentPage, beginIndex);
       }
       
       /**
        * 每页显示记录数
        *
        * @param everyPage
        * @return
        */
       private static int getEveryPage(int everyPage) {
        return everyPage == 0 ? 10 : everyPage;
       }
       
       /**
        * 当前页,默认1
        *
        * @param currentPage
        * @return
        */
       private static int getCurrentPage(int currentPage) {
        return currentPage == 0 ? 1 : currentPage;
       }

       /**
        * 开始的索引
        *
        * @param everyPage
        * @param currentPage
        * @return
        */
       private static int getBeginIndex(int everyPage, int currentPage) {
        return (currentPage - 1) * everyPage;
       }

       /**
        * 总页数
        *
        * @param everyPage
        * @param totalRecords
        * @return
        */
       private static int getTotalPage(int everyPage, int totalRecords) {
        int totalPage = 0;

        if (totalRecords % everyPage == 0)
         totalPage = totalRecords / everyPage;
        else
         totalPage = totalRecords / everyPage + 1;

        return totalPage;
       }
       
       /**
        * 是否存在前页
        * @param currentPage
        * @return
        */
       private static boolean hasPrePage(int currentPage) {
        return currentPage == 1 ? false : true;
       }

       /**
        * 是否存在后页
        * @param currentPage
        * @param totalPage
        * @return
        */
       private static boolean hasNextPage(int currentPage, int totalPage) {
        return currentPage == totalPage || totalPage == 0 ? false : true;
       }

      }
       

      发表于 @ 2007年07月31日 17:37:00|编辑

      新一篇: hql(部分函数) | 旧一篇: 时间转换格式问题

      评论:没有评论。

      Csdn Blog version 3.1a
      Copyright © 神の熊猫