1 编辑一个class:包含当前页面、总条数、每页显示的条数的属性和构造方法。
具体代码如下:
public class PageUtilServices { private int pageSize;//每页显示的条数 private int recordCount;//总共的条数 private int currentPage;//当前页面 //构造方法 public PageUtilServices(int pageSize, int recordCount, int currentPage) { super(); this.pageSize = pageSize; this.recordCount = recordCount; this.currentPage = currentPage; } public PageUtilServices() { super(); } //总页数 public int getPageCount() { int size = recordCount/pageSize;//总条数/每页显示的条数=总页数 int mod = recordCount % pageSize;//最后一页的条数 if(mod != 0) size++; return recordCount == 0 ? 1 : size; } //当前页的起始索引为0 public int getFromIndex() { return (currentPage-1) * pageSize; } //当前页应展示的最后索引 public int getToIndex() { return Math.min(recordCount, currentPage * pageSize); } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getRecordCount() { return recordCount; } public void setRecordCount(int recordCount) { this.recordCount = recordCount; } }
2.在jsp内实例化该class,并调用相关属性和方法。具体代码如下:
<% BookInfoDAO dao=new BookInfoDAO(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); List<Book> books=dao.getAllBook(); String pageStr = request.getParameter("page"); int current_size=10; int currentPage = 1; if (pageStr==null){ currentPage = 1; }else if(Integer.parseInt(pageStr)<=0){ currentPage = 1; }else if(Integer.parseInt(pageStr)>books.size()/current_size){ currentPage =books.size()/current_size+1; }else{ currentPage=Integer.parseInt(pageStr); } PageUtilServices pUtil = new PageUtilServices(current_size, books.size(), currentPage); currentPage = pUtil.getCurrentPage(); %> <table border="1px"> <tr><td>bookId</td> <td>Name</td> <td>author</td> <td>price</td> <td>date</td> <td>修改</td> <td>删除</td> </tr> <%for(int i = pUtil.getFromIndex(); i < pUtil.getToIndex();i++){ %> <tr><td><%=books.get(i).getBookId()%></td> <td><%=books.get(i).getName() %></td> <td><%=books.get(i).getAuthor() %></td> <td><%=books.get(i).getPrice() %></td> <td><%=sdf.format(books.get(i).getDate()) %></td> <td><a href="servlet/do_upDateBookServlet?id=<%=books.get(i).getBookId() %>">修改</a></td> <td><a href="servlet/do_delBookServlet?id=<%=books.get(i).getBookId() %>">删除</a></td> </tr> <%}%> <tr><td bgcolor="#eeeeee" colspan=13 align="center"> 记录总数<%=pUtil.getRecordCount()%>条 当前页/总页数<%=currentPage%> /<%=pUtil.getPageCount()%> 每页显示<%=pUtil.getPageSize()%>条 <a href="bookList.jsp?page=1">首页</a> <a href="bookList.jsp?page=<%=(currentPage - 1)%>">上页</a> <a href="bookList.jsp?page=<%=(currentPage + 1)%>">下页</a> <a href="bookList.jsp?page=<%=pUtil.getPageCount()%>">末页</a> </td></tr> </table>
红线部分表示该class的具体使用地方。页面效果: