<div> <% Integer pageNo = (Integer) request.getAttribute("pageNo"); Integer count = (Integer) request.getAttribute("count"); Integer pageCount = count / 5 + 1; if (pageNo == 1) { % <span class="unuse">[第一页]</span> <span class="unuse">[上一页]</span> <% } else { %> <span><a href="?pageNo=1">[第一页]</a></span> <span><a href="?pageNo=<%=pageNo - 1%>">[上一页]</a></span> <% } %> <% for (int i = 1; i <= pageCount; i++) { if (i == pageNo) { %> <span class="currentPage"><%=i%></span> <% } else { %> <span><a href="?pageNo=<%=i%>"><%=i%></a></span> <% } } %> <% if (pageNo == pageCount) { %> <span class="unuse">[下一页]</span> <span class="unuse">[最后一页]</span> <% } else { %> <span><a href="?pageNo=<%=pageNo + 1%>">[下一页]</a></span> <span><a href="?pageNo=<%=pageCount%>">[最后一页]</a></span> <% } %> <form style="display:inline;"> <select name="pageNo"> <% for (int i = 1; i <= pageCount; i++) { %> <option value="<%=i%>" <%=(i == pageNo ? "selected" : "")%>><%=i%></option> <% } %> </select> <input type="submit" value="go" /> </form> </div>
1.数据库分页
所谓的分页,就是要查询的数据太多了,一次性显示出来的话,既不容易查看也影响性能。
// 获得当前页码 int pageNo = 1; try { pageNo = Integer.parseInt(request.getParameter("pageNo")); } catch(Exception ex) { } if (pageNo < 1) { pageNo = 1; } request.setAttribute("pageNo", pageNo);
这里pageNo代表当前的页码,如果没有传递pageNo参数,默认显示第一页,为此我们在解析request中参数时要捕获对应的异常,如果没有输入或者参数不是一个数字时pageNo就还是等于1
JSP页面:
<form style="display:inline;"> <select name="pageNo"> <% for (int i = 1; i <= pageCount; i++) { %> <option value="<%=i%>" <%=(i == pageNo ? "selected" : "")%>><%=i%></option> <% } %> </select> <input type="submit" value="go" /> </form>