之前实现了分页的效果,对于不同的数据展示分页的代码是几乎完全相同的只有请求的地址不同。
所以在Page类中增加url属性,进而将分页条抽取为一个jsp文件,在数据展示的页面引入即可,只需在servlet层设置url。
抽取出的分页jsp主要部分:
<div align="center"> <c:if test="${page.pageno>1 }"> <a href="${page.url}?action=findPage&pageno=1&pagesize=4">首页</a> <a href="${page.url}?action=findPage&pageno=${page.pageno-1 }&pagesize=4">上一页</a> <% Page page2=(Page)session.getAttribute("page"); int flag=1; if(page2.getPageno()>=4)flag=3; if(page2.getPageno()>=3&page2.getPageno()<=4)flag=2; if(page2.getPageno()<=2)flag=1; for(int i=page2.getPageno()-flag;i<page2.getPageno();i++) { %> <a href="${page.url}?action=findPage&pageno=<%=i%>&pagesize=4"><%=i%></a> <% } %> </c:if> 【${page.pageno }】 <c:if test="${page.pageno<page.pagetotal }"> <% Page page2=(Page)session.getAttribute("page"); int flag; for(int i=page2.getPageno()+1,j=0;i<=page2.getPagetotal()&j<=3;i++,j++) { flag=page2.getPageno()+1+j; %> <a href="${page.url}?action=findPage&pageno=<%=flag%>&pagesize=4"><%=flag%></a> <% } %> <a href="${page.url}?action=findPage&pageno=${page.pageno+1 }&pagesize=4">下一页</a> <a href="${page.url}?action=findPage&pageno=${page.pagetotal }&pagesize=4">末页</a> </c:if> 共${page.pagetotal }页,${page.pagetotalcount}条记录 到第<input value="${page.pageno }" name="pn" id="pn_input">页 <input type="button" value="确定" id="topage"> <script type="text/javascript" src="./js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> $(function(){ $("#topage").click(function(){ var pageno=$("#pn_input").val(); if(pageno<1||pageno>${page.pagetotal}) { alert("请输入"+${page.pageno}+"到"+${page.pagetotal}+"之间的数字"); } else { location.href=${page.url}+"?action=findPage&pageno="+pageno+"&pagesize=4"; } }); }); </script> </div>