如何用JS将数据在页面上分页显示出来

JavaScript017

如何用JS将数据在页面上分页显示出来,第1张

在servlet的service()方法中只需进行如下操作:

PageControl  pageCtl = yourBusinessObject.listData(req.getParameter("jumpPage"))

req.setAttribute("pageCtl",pageCtl)

说明:yourBusinessObject封装了商业逻辑,是位于Business Logic Layer中的一个对象,运用OOAD的方法,封装商业对象,在Persistent Layer之上组建坚实的Business Logic Layer同样是构建大型电子商务架构的关键所在。本文的关注点只是分页处理,暂不详细论述.

在每个想要实现翻页显示数据的jsp页面中,我们的工作也很简单,其代码是公式化的:

<jsp:useBean id="pageCtl" class="yourpackage.PageControl" scope="request"></jsp:useBean>

<%if(pageCtl.maxPage!=1)){%>

<form name="PageForm"  action="/servlet/yourpackage.yourservlet" method="post">

<%@ include file="/yourpath/pageman.jsp"%>

</form>

<%}%>

说明:

if(pageCtl.maxPage!=1)实现了这样一个逻辑:如果所取得数据不足一页,那么就不用进行翻页显示。

我们注意到<%@ include file="/yourpath/pageman.jsp"%>这使得真正的翻页部分完全得到了重用.

那么pageman.jsp到底做了些什么呢?它实现了经常做翻页处理的人耳熟能详的逻辑 

(A)第一页时不能再向前翻; 

(B)最后一页时不能再向后翻; 

同时能够进行页面任意跳转,具体代码如下:

每页<%=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=1i<=pageCtl.maxPagei++)  {

    if (i== pageCtl.curPage){

    %>

    <OPTION selected value=<%=i%>><%=i%></OPTION>

    <%}else{%>

    <OPTION value=<%=i%>><%=i%></OPTION>

    <%}}%> 

    </SELECT>页

最后附上用于页面跳转的javascript公共函数:

function Jumping(){

 document.PageForm.submit()

 return

}

function gotoPage(pagenum){

 document.PageForm.jumpPage.value = pagenum

 document.PageForm.submit()

 return

}

运行效果:

要实现这个功能,要用到ajax获取后端数据,和前端js定时器的知识,首先自定义一个ajax获取要显示在html页面上的数据的方法,例如方法getdata,这个方法把获取的返回值,通过js动态的显示到html页面要显示的区域,然后再写一个js定时器来实现实时调用数据,如:<script>//定时器 异步运行 function hello(){ alert("hello")} var t2 = window.setTimeout("hello()",3000) //定时器//window.clearTimeout(t2)//去掉定时器 </script>把里面的hello方法换成你ajax获取数据的方法名,然后改下定时器里面的方法名和时间,这里设置的是3秒钟执行一次可以设置成你自己要的数据,就实现了你要的页面实时调用数据了。