刚开始学习SSM框架,由于要实现CRUD操作,发现分页功能好像是需要的,于是就做了一个分页。

步骤1:没有使用Maven创建工程,所以需要jar包。

Eclipse中SSM框架,实现分页功能

把这两个jar包导入项目,开始下一步。

2:在mybatis配置文件中添加插件

<plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->        
            <property name="dialect" value="mysql"/>
        </plugin>
  </plugins>

3:进入controller编写分页的逻辑代码

        PageHelper.startPage(1, 5);//传入页码,从第1页开始,以及每页要显示的记录条数:5条

       //startPage后面紧跟的这个查询就是一个分页查询
        List<User> emps = userService.selectAll();
        //使用pageInfo包装查询后的结果,只需要将pageInfo交给页面就行了
        //封装了详细的分页信息,包括有我们查询出来的数据, 5:连续显示的页数
         PageInfo page = new PageInfo(emps,5);
         model.addAttribute("users", page);        

4:分页好后的信息被封装在了page对象里,在页面拿到对象后可以进行操作。

<!--分页条信息  -->
            <div class="col-md-6">
                <nav aria-label="Page navigation">
                    <ul class="pagination">
                        <li><a href="<%=request.getContextPath() %>/user/selectAll?pn=1">首页</a></li>  //pn:代表pageNum,页面传入的参数
                        <c:if test="${users.hasNextPage }">   //查询是否有上一页,如果没有则不会有上一页那个标志
                            <li><a href="<%=request.getContextPath() %>/user/selectAll?pn=${users.pageNum-1}" aria-label="Previous"> <span
                                aria-hidden="true">&laquo;</span>
                            </a></li>
                        </c:if>                        
                        <c:forEach items="${users.navigatepageNums }" var="page_Num">    //最开始设置的要显示的页数为5页,navigatepageNums则是获取到要显示的页数,page_Num表示当前页数
                            <!--如果当前页码是要显示的页码,就高亮显示  -->
                            <c:if test="${page_Num == users.pageNum }">
                                <li class="active"><a href="#">${page_Num }</a></li>
                            </c:if>
                            <c:if test="${page_Num != users.pageNum }">
                                <li><a href="<%=request.getContextPath() %>/user/selectAll?pn=${page_Num }">${page_Num }</a></li>
                            </c:if>
                        </c:forEach>
                        <c:if test="${users.hasNextPage }">
                            <li><a href="<%=request.getContextPath() %>/user/selectAll?pn=${users.pageNum+1}" aria-label="Next"> <span
                                aria-hidden="true">&raquo;</span>
                            </a></li>
                        </c:if>                        
                        <li><a href="<%=request.getContextPath() %>/user/selectAll?pn=${users.pages}">尾页</a></li>
                    </ul>
                </nav>
            </div>

效果:Eclipse中SSM框架,实现分页功能

到了第一页就没有上一页的标志,同理最后一页没有下一页的标志。

Eclipse中SSM框架,实现分页功能

 

 

相关文章: