1.分页功能实现
目的:当我们在登录完成之后,第一步应该先看到公司的员工以及一些必要信息,而员工如果太多,我们就不能将所有的数据都展现出来, 因此我们可以使用数据分页来操作数据库中的员工数据。
实现:
controller层:
我们在控制层指定一个查询方法,来实现分页功能
@RequestMapping("/getEmps")public String getEmps(@RequestParam(value ="pn",defaultValue = "1")Integer pn, Model model){// 1.引入分页插件// 2.在查询前调用,传入页码。以及每页的大小PageHelper.startPage(pn,5);List<Employee> aLlEmps = empService.getALlEmps();// 3.使用pageInfo来包装这个查询后的信息,这个pageinfo中可以获取很多分页的信息// 第二个参数代表查出几页PageInfo pageInfo = new PageInfo(aLlEmps,5);System.out.println("----------------");System.out.println(pageInfo.getPageNum());model.addAttribute("pageinfo",pageInfo);// 获取总页数pageInfo.getPageSize();pageInfo.getStartRow();// 获取当前页pageInfo.getPageNum();return "list";}
视图层:
我们需要使用jstl表达式来对控制层返回的数据进行遍历。
1.加入jstl标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
2.遍历数据
3.显示分页信息
<%--显示分页信息--%><div class="row"><nav aria-label="Page navigation example" style="margin: auto"><ul class="pagination"><li class="page-item"><a class="page-link" href="${pageContext.request.contextPath}/emp/getEmps?pn=1" aria-label="Previous"><c:if test="${pageInfo.pageNum!=1}"><span aria-hidden="true">首页</span></c:if></a></li><c:forEach items="${pageinfo.navigatepageNums}" var="pageNums"><c:if test="${pageInfo.pageNum==pageNums}"><li class="page-item active"><a class="page-link" href="#">${pageNums}</a></li></c:if><c:if test="${pageInfo.pageNum!=pageNums}"><li class="page-item"><a class="page-link" href="${pageContext.request.contextPath}/emp/getEmps?pn=${pageNums}">${pageNums}</a></li></c:if></c:forEach><li class="page-item"><a class="page-link" href="${pageContext.request.contextPath}/emp/getEmps?pn=${pageinfo.pages}" ><c:if test="${pageInfo.pageNum!=pageinfo.pages}"><span aria-hidden="true">尾页</span></c:if></a></li></ul></nav></div></div>
效果:<br /><br />出现的问题:<br />无法出现当前页<br />解决方案:<br />将controller的pn参数传过去作为当前页,因为pn就是前台页面传来的当前页,因此也可以作为当前页传过去。<br />实现:
model.addAttribute("pageNum",pn);
效果:<br />
2.业务功能更改
因为我们使用普通形式的前台发起数据,后台接收返回数据到页面,这种不利于程序扩展,我们如果想在安卓,ios客户端也可以浏览网页,因此我们采用ajax来完成数据的传输,因为这样无论是pc还是手机端都可以快速解析json,因此使用ajax更利于程序实现平台无关
1、实现查询功能
1.index.jsp页面直接发送ajax请求进行员工分页数据的查询
2.服务器将查出的数据,以json字符串的形式返回给浏览器
3.浏览器收到json字符串,可以使用js对json进行解析,使用js通过dom增删改改变页面
返回json,就可以实现客户端的无关性。
