zoukankan      html  css  js  c++  java
  • jsp servlet 分页

    Page:

    Page
    public class Page {
        private int everyPage;            //每页显示记录数
        private int totalCount;            //总记录数
        private int totalPage;            //总页数
        private int currentPage;        //当前页
        private int beginIndex;            //查询起始点
        private boolean hasPrePage;        //是否有上一页
        private boolean hasNextPage;    //是否有下一页
        public Page(int everyPage, int totalCount, int totalPage, 
                int currentPage,int beginIndex, boolean hasPrePage,
                boolean hasNextPage) {    //自定义构造方法
            this.everyPage = everyPage;
            this.totalCount = totalCount;
            this.totalPage = totalPage;
            this.currentPage = currentPage;
            this.beginIndex = beginIndex;
            this.hasPrePage = hasPrePage;
            this.hasNextPage = hasNextPage;
        }
        public Page(){}                    //默认构造函数
        public int getEveryPage() {        //获得每页显示记录数
            return everyPage;
        }
        public void setEveryPage(int everyPage) {//设置每页显示记录数
            this.everyPage = everyPage;
        }
        public int getTotalCount() {//获得总记录数
            return totalCount;
        }
        public void setTotalCount(int totalCount) {//设置总记录数
            this.totalCount = totalCount;
        }
        public int getTotalPage() {//获得总页数
            return totalPage;
        }
        public void setTotalPage(int totalPage) {//设置总页数
            this.totalPage = totalPage;
        }
        public int getCurrentPage() {//获得当前页
            return currentPage;
        }
        public void setCurrentPage(int currentPage) {//设置当前页
            this.currentPage = currentPage;
        }
        public int getBeginIndex() {//获得查询起始点
            return beginIndex;
        }
        public void setBeginIndex(int beginIndex) {//设置查询起始点
            this.beginIndex = beginIndex;
        }
        public boolean isHasPrePage() {//获得是否有上一页
            return hasPrePage;
        }
        public void setHasPrePage(boolean hasPrePage) {//设置是否有上一页
            this.hasPrePage = hasPrePage;
        }
        public boolean isHasNextPage() {//获得是否有下一页
            return hasNextPage;
        }
        public void setHasNextPage(boolean hasNextPage) {//设置是否有下一页
            this.hasNextPage = hasNextPage;
        }
    }

    PageUtil:分页辅助类:

    public class PageUtil {
        public static Page createPage(int everyPage,int totalCount,int currentPage) {//创建分页信息对象
            everyPage = getEveryPage(everyPage);
            currentPage = getCurrentPage(currentPage);
            int totalPage = getTotalPage(everyPage, totalCount);
            int beginIndex = getBeginIndex(everyPage, currentPage);
            boolean hasPrePage = getHasPrePage(currentPage);
            boolean hasNextPage = getHasNextPage(totalPage, currentPage);
            return new Page(everyPage, totalCount, totalPage, currentPage,
                    beginIndex, hasPrePage,  hasNextPage);
        }
        public static int getEveryPage(int everyPage) {        //获得每页显示记录数
            return everyPage == 0 ? 10 : everyPage;
        }
        public static int getCurrentPage(int currentPage) {    //获得当前页
            return currentPage == 0 ? 1 : currentPage;
        }
        public static int getTotalPage(int everyPage,int totalCount) {//获得总页数
            int totalPage = 0;
            if(totalCount != 0 &&totalCount % everyPage == 0) {
                totalPage = totalCount / everyPage;
            } else {
                totalPage = totalCount / everyPage + 1;
            }
            return totalPage;
        }
        public static int getBeginIndex(int everyPage,int currentPage) {//获得起始位置
            return (currentPage - 1) * everyPage;
        }
        public static boolean getHasPrePage(int currentPage) {//获得是否有上一页
            return currentPage == 1 ? false : true;
        }
        public static boolean getHasNextPage(int totalPage, int currentPage) {    //获得是否有上一页
            return currentPage == totalPage || totalPage == 0 ? false : true;
        }
    }
    PageUtil

    servlet中调用:

    int currentPage = 0;
            String currentPageStr = request.getParameter("currentPage");
            if(currentPageStr == null || "".equals(currentPageStr)){
                currentPage = 1;
            }else {
                currentPage = Integer.parseInt(currentPageStr);
            }
            
            MessageDAO messageDAO = MessageDAOFactory.getMessageAOInstance();
            Page page = PageUtil.createPage(5, messageDAO.findAllCount(), currentPage);
            List<Message> messages = messageDAO.findAllMessagee(page);
            request.setAttribute("messageList", messages);
            request.setAttribute("page", page);
    View Code

    JSP中:

    <c:choose>
            <c:when test="${page.hasPrePage}">
                <a href="GetMessageList?currentPage=1">首页</a> | 
        <a href="GetMessageList?currentPage=${page.currentPage -1 }">上一页</a>
            </c:when>
            <c:otherwise>
                首页 | 上一页
            </c:otherwise>
        </c:choose>
        <c:choose>
            <c:when test="${page.hasNextPage}">
                <a href="GetMessageList?currentPage=${page.currentPage + 1 }">下一页</a> | 
        <a href="GetMessageList?currentPage=${page.totalPage }">尾页</a>
            </c:when>
            <c:otherwise>
                下一页 | 尾页
            </c:otherwise>
        </c:choose>
        当前为第${page.currentPage}页,共${page.totalPage}页
    View Code

    效果图:

  • 相关阅读:
    Python --- pyinstaller --- 打包成exe并更换图标
    习惯用OneNote记录
    Python+Pycharm安装教程
    VSCode安装教程
    python+selenium基础篇,三种等待方式,显示、隐式、强制等待
    python+selenium基础篇,键盘操作
    MySql慢查询
    python之读取excel实例演示
    python异常的信息
    python接口自动化之读取excel表的数据(使用openpyxl模块)
  • 原文地址:https://www.cnblogs.com/Mr-Clint/p/3557397.html
Copyright © 2011-2022 走看看