1,创建PageBean
package zf.zjq.domain; import java.util.List; public class PageBean <T> { //每页显示的用户信息 private List<T> data; // 当前页数 private int curPage; //每一页显示几个数据 private int pageSize; //数据库中有多少条数据 private int count; //总共有多少页 private int totalPage; public int getStartIndex(){ return (this.curPage-1) * this.pageSize; } public PageBean() { } public List<T> getData() { return data; } public void setData(List<T> data) { this.data = data; } public int getCurPage() { return curPage; } public void setCurPage(int curPage) { this.curPage = curPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public int getTotalPage() { return (int) Math.ceil(this.count * 1.0/ this.pageSize); } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } }
2,创建servlet
@WebServlet(urlPatterns = "/pageBean") public class PageBeanServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String page = request.getParameter("curPage"); int curPage = 1; if(page!= null){ curPage = Integer.parseInt(page); } int pageSize = 3; UserService service = new UserServiceImpl(); PageBean<User> pageBean = service.queryPageBean(curPage,pageSize); request.setAttribute("pb",pageBean); request.getRequestDispatcher("page_list.jsp").forward(request,response); } }
3,service层代码
public PageBean<User> queryPageBean(int curPage, int pageSize) { PageBean<User> pageBean = new PageBean<>(); pageBean.setPageSize(pageSize); pageBean.setCurPage(curPage); List<User> data = userDao.queryPageBean(pageBean); pageBean.setData(data); int count = userDao.queryCount(); pageBean.setCount(count); return pageBean; }
4,dao层代码
@Override public List<User> queryPageBean(PageBean<User> pageBean) { String sql = "select * from t_user limit ?,?"; return template.query(sql,new BeanPropertyRowMapper<>(User.class),pageBean.getStartIndex(),pageBean.getPageSize()); } @Override public int queryCount() { String sql = "select count(*) from t_user"; Integer count = template.queryForObject(sql,int.class); return count.intValue(); }
5,web端代码
<c:forEach items="${pb.data}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.sex}</td> <td>${user.age}</td> <td>${user.address}</td> <td>${user.qq}</td> <td>${user.email}</td> <td><a class="btn btn-default btn-sm" href="javascript:void(0);" onclick="queryUserUp(${user.id})">修改</a> <a class="btn btn-default btn-sm" href="javascript:void(0);" onclick="deleteUser(${user.id})">删除</a></td> </tr> </c:forEach> <nav> <ul class="pagination"> <%--上一页--%> <c:if test="${pb.curPage==1}"> <li class="disabled"> <a href="jacascript:void(0)"> <span>«</span> </a> </li> </c:if> <c:if test="${pb.curPage != 1}"> <li> <a href="pageBean?curPage=${pb.curPage-1}"> <span>«</span> </a> </li> </c:if> <%--页面显示区--%> <c:forEach begin="1" end="${pb.totalPage}" var="n"> <c:if test="${pb.curPage==n}"> <li class="active"><span style="color: red">${n}</span> </li> </c:if> <c:if test="${pb.curPage != n}"> <li><a href="pageBean?curPage=${n}">${n}</a></li> </c:if> </c:forEach> <%--下一页--%> <c:if test="${pb.curPage==pb.totalPage}"> <li class="disabled"> <a href="javascript:void(0)"><span>»</span></a> </li> </c:if> <c:if test="${pb.curPage != pb.totalPage}"> <li> <a href="pageBean?curPage=${pb.curPage+1}"> <span>»</span> </a> </li> </c:if> </ul> </nav> <tr> <td colspan="8" align="center"><a class="btn btn-primary" href="add.jsp">添加联系人</a></td> </tr>