zoukankan      html  css  js  c++  java
  • springmvc pager-taglib 分页,bootstrap样式

     注意:

    嵌入到项目中时必须以带参形式访问:

    http://localhost:8081/DETECT-X/showConnLogsByPager.action?pageSize=5&pager.offset=0&pageNo=1

    导入 Maven 依赖:

            <!-- https://mvnrepository.com/artifact/jsptags/pager-taglib -->
            <dependency>
                <groupId>jsptags</groupId>
                <artifactId>pager-taglib</artifactId>
                <version>2.0</version>
            </dependency>

    Controller:

    ConnLogs 为 bean
     pi.setTotal(117);  // 这里的Total值是指的所有记录,也就是数据条数总数,这个要从数据库中拿,这里是用的静态数据测试
    @RequestMapping("showConnLogsByPager")
        public ModelAndView showConnLogsByPager(PageInfo<ConnLogs> pi) {
            ModelAndView modelAndView = new ModelAndView("/jsp/ConnLogs/ConnLogsViewer.jsp");
            RepoDao repoDao = new RepoDaoImp();
            int userId = (int) request.getSession().getAttribute("userId");
            int pagerOOfset = Integer.parseInt(request.getParameter("pager.offset"));
            Object connLogsCount = repoDao.getConnLogsCountByUid(userId);
    
            pi.setTotal((Long) connLogsCount);
    //        pageSize 决定每页显示多少条,setPageSize 必须和 showPage 的 count 变量值一样,否则每页就会有重复
            int pageSize = 8;
            pi.setPageSize(pageSize);
    
    //        传入偏移量和pageSize 从数据库中得到分页后的数据 这种是数据库分页 最优的一种分页方式
            List<ConnLogs> connLogs = repoDao.showPage(userId, pagerOOfset, pageSize);
            modelAndView.addObject("connLogs", connLogs);
    
    //        记录总数
            modelAndView.addObject("connLogsCount",connLogsCount);
    
    
            modelAndView.addObject("pi", pi);
            return modelAndView;
        }

    sql语句:

    SELECT * FROM conn_logs WHERE uid=? ORDER BY gid DESC LIMIT ?,?

    jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    <%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
    
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
    %>
    
    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
        <base href="<%= basePath %>"/>
        <title>default page</title>
        <meta id="pageSizeByMeta" content="${pi.pageSize }">
        <%--<link rel="stylesheet" href="/DETECT-X/disableBodySelect.css">--%>
        <link rel="stylesheet" href="/DETECT-X/bootstrap_3.3.6/bootstrap.min.css">
        <script src="/DETECT-X/jquery.min.js"></script>
        <script src="/DETECT-X/bootstrap_3.3.6/bootstrap.min.js"></script>
    </head>
    <body>
    <br>
    <br>
    <br>
    <br>
    
    <table class="table table-striped">
        <thead>
        <tr>
            <td>gid</td>
            <td>warnningPtLink</td>
        </tr>
        </thead>
        <tbody>
        <c:forEach var="C" items="${connLogs}">
            <tr>
                <td>${C.gid}</td>
                <td>${C.warningPtLink}</td>
            </tr>
        </c:forEach>
    
        </tbody>
    </table>
    
    <nav>
        <ul class="pagination">
            <pg:pager url="showConnLogsByPager.action" items="${pi.total }" maxPageItems="${pi.pageSize }"
                      export="currentPageNumber=pageNumber">
                <pg:param name="pageSize" value="${pi.pageSize }"/>
                <pg:first>
                    <li><a href="${pageUrl}&pageNo=${pageNumber }"><span class="glyphicon glyphicon-home"></span></a></li>
                </pg:first>
                <pg:prev>
                    <li>
                        <a href="${pageUrl }&pageNo=${pageNumber }" aria-label="Previous">
                            <span class="glyphicon glyphicon-triangle-left" aria-hidden="true"></span>
                        </a>
                    </li>
                </pg:prev>
                <pg:pages>
                    <c:choose>
                        <c:when test="${pageNumber eq currentPageNumber }">
                            <li><a><font color="red">${pageNumber }</font></a></li>
                        </c:when>
                        <c:otherwise>
                            <li>
                                <a href="${pageUrl }&pageNo=${pageNumber }">${pageNumber }</a>
                            </li>
                        </c:otherwise>
                    </c:choose>
                </pg:pages>
                <pg:next>
                    <li>
                        <a href="${pageUrl }&pageNo=${pageNumber }" aria-label="Next">
                            <span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span>
                        </a>
                    </li>
                </pg:next>
                <pg:last>
                    <li><a href="${pageUrl }&pageNo=${pageNumber }"><font
                            class="glyphicon glyphicon-modal-window"></font></a></li>
                </pg:last>
    
            </pg:pager>
    
    
            <script>
                $(function () {
                    $("#gotoPageByMetro").click(function () {
    
                        var pageNum = $("#beGotoPageNum").val();
                        var pageSizeOfJs = $("#pageSizeByMeta").attr("content");
                        console.log(pageSizeOfJs + " " + pageNum);
                        // pageNum (页码) 需要 -1 后 再乘以 pagesize ,才能得到正确的 pager.offset 值
                        var pagerOffset = pageSizeOfJs * (pageNum - 1);
    
                        window.location.href = "showConnLogsByPager.action?pageSize=${pi.pageSize }&pager.offset=" + pagerOffset + "&pageNo=" + pageNum;
    
                    });
    
                    //    给检索框绑定回车事件
                    $('#beGotoPageNum').bind('keypress', function (event) {
                        if (event.keyCode == "13") {
                            var pageNum = $("#beGotoPageNum").val();
                            var pageSizeOfJs = $("#pageSizeByMeta").attr("content");
                            console.log(pageSizeOfJs + " " + pageNum);
                            // pageNum (页码) 需要 -1 后 再乘以 pagesize ,才能得到正确的 pager.offset 值
                            var pagerOffset = pageSizeOfJs * (pageNum - 1);
    
                            window.location.href = "showConnLogsByPager.action?pageSize=${pi.pageSize }&pager.offset=" + pagerOffset + "&pageNo=" + pageNum;
                        }
                    });
    
                });
    
            </script>
            <div class="col-lg-2">
                <div class="input-group">
                    <input id="beGotoPageNum" type="text" class="form-control">
                    <span class="input-group-btn">
                            <button id="gotoPageByMetro" class="btn btn-default" type="button">
                                <span class="glyphicon glyphicon-modal-window"></span>
                            </button>
                        </span>
                </div><!-- /input-group -->
            </div><!-- /.col-lg-6 -->
        </ul>
    </nav>
    
    
    </body>
    </html>

    测试效果:

  • 相关阅读:
    电商交易背景知识合集第二季
    技术高手如何炼成
    #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
    电商交易背景知识合集第一季
    真刀真枪压测:基于TCPCopy的仿真压测方案
    安全基础教育第二季第1集:屡战屡败的找回密码
    #研发解决方案#从宏观到微观——天机与鹰眼联手
    挖坑和踩雷
    我们过去几年做对了哪些事
    小伙伴们手滑集
  • 原文地址:https://www.cnblogs.com/kinome/p/9009294.html
Copyright © 2011-2022 走看看