怎么进行分页数据的查询,如何判断是否有下一页
jsp中分页显示查询到的数据是通过foreach标签控制的,一般是显示首页,下一页,上一页,尾页这些连接项。
1、构建一个PageControl对象将分页所涉及到的一些关键的"控制数据"予以封装.
具体说明如下:
public int curPage ; //当前是第几页
public int maxPage ; //一共有多少页
public int maxRowCount ; //一共有多少行
public int rowsPerPage ; //每页有多少行
public yourDataType yourdata ;//装载每页的数据 关于每页所要显示的"实体数据"的载体,其实现方式多种多样,比如说在IBM电子商务系统MPE中是以bean的形式,这是一种面向对象的实现,比较的简略的实现可用java.util.Vector等,为了避免分散对核心问题的的注意力,这里用youDataType予以抽象.
public void countMaxPage() { //根据总行数计算总页数if (this.maxRowCount % this.rowsPerPage==0){this.maxPage = this.maxRowCount/this.rowsPerPage;}else{this.maxPage = this.maxRowCount/this.rowsPerPage + 1;}}
this.rowsPerPage其实应从配置文件中获得,这样做的好处是程序能在运行中读取从而实现动态(再)配置,简略的做法是直接写在程序中。
2、在servlet的service()方法中只需进行如下操作:
PageControl pageCtl = yourBusinessObject.listData(req.getParameter("jumpPage"));req.setAttribute("pageCtl",pageCtl);获取到显示第几页控制参数
3、pageman.jsp页面的控制输出代码
每页<%=pageCtl.rowsPerPage%>行共<%=pageCtl.maxRowCount%>行第<%=pageCtl.curPage%>页共<%=pageCtl.maxPage%>页<BR><%if(pageCtl.curPage==1){ out.print(" 首页 上一页"); }else{ %> <A HREF="javascript:gotoPage(1)">首页</A><A HREF="javascript:gotoPage(<%=pageCtl.curPage-1%>)">上一页</A><%}%><%if(pageCtl.curPage==pageCtl.maxPage){ out.print("下一页 尾页"); }else{ %> <A HREF="javascript:gotoPage(<%=pageCtl.curPage+1%>)">下一页</A><A HREF="javascript:gotoPage(<%=pageCtl.maxPage%>)">尾页</A><%}%>转到第<SELECT name="jumpPage" onchange="Jumping()"><% for(int i=1;i<=pageCtl.maxPage;i++) {if (i== pageCtl.curPage){%><OPTION selected value=<%=i%>><%=i%></OPTION><%}else{%><OPTION value=<%=i%>><%=i%></OPTION><%}}%></SELECT>页在页面上会呈现出形如下图: