0608-web:分页
2020-06-08 本文已影响0人
小咕咕coco
主要内容:
- 一个page实体类:用于保存一些变量,比如总的记录数量,一页显示多少记录,返回的每页项目list
- 分页对应的service方法:页号为参数,返回该页的item集合(本质上是确定首位+一个limit语句的调用)
- 页脚的标签:首页尾页上下页号等:标注连接+更新参数
<tr bgcolor="#add8e6"> <%--合并横向单元格,使用td样式--%> <td colspan="5" class="td"> <%--显示当前页数,requestScope.pagemsg.currentPage等价于request.getAttribute(pagemsg.currentPage)等价于${pagemsg.currentPage}--%> <span>第${requestScope.pagemsg.currentPage }/ ${requestScope.pagemsg.totalPage}页</span> <span>总记录数:${requestScope.pagemsg.totalCount } 每页显示:${requestScope.pagemsg.pageSize}</span> <span> <form style="display: inline" action="/task2/list"> <input type="text" name="currentPage" size="5" placeholder="跳转到"> <input type="submit" value="跳转"> </form> </span> <span> <%--利用此判断可以杜绝第一页还可以点击到上一页的情况,也可以在controller中设置限制条件--%> <c:if test="${requestScope.pagemsg.currentPage != 1}"> <%--默认出现第一页,点击首页按钮会跳转到第一页--%> <a href="${pageContext.request.contextPath }/task2/list?currentPage=1">[首页]</a> <%--点击上一页,currentPage属性会-1,即输入controller层中输入的参数currentPage会-1,从而实现上一页的功能--%> <a href="${pageContext.request.contextPath }/task2/list?currentPage=${requestScope.pagemsg.currentPage-1}">[上一页]</a> </c:if> <%--避免在最后一页可以点击下一页--%> <c:if test="${requestScope.pagemsg.currentPage != requestScope.pagemsg.totalPage}"> <a href="${pageContext.request.contextPath }/task2/list?currentPage=${requestScope.pagemsg.currentPage+1}">[下一页]</a> <a href="${pageContext.request.contextPath }/task2/list?currentPage=${requestScope.pagemsg.totalPage}">[尾页]</a> </c:if>
- controller和jsp页面:con中根据参数调用service方法即可,返回值传送到view层,jsp中for each遍历列出
//currentPage这个值是从jsp页面传回来的,对应不同的按钮值也不同,根据传回来的不同值传进不同的值,默认为1,即没有按任何键的情况下自动显示第一页 public ModelAndView listPersonByPage(@RequestParam(value = "currentPage" ,defaultValue="1",required = false)int currentPage){ ModelAndView mav=new ModelAndView(); //使用mav将查找到的数据传到list.jsp里,再在jsp中动态获取数据 mav.addObject("pagemsg",personService.listByPage(currentPage)); //注意此时的attributeName为pagemsg,后面会使用到其来选定属性和路径 mav.setViewName("list"); //设置返回的视图页面为list.jsp,前缀后缀在spring-mvc.xml中设置了 return mav; }