用Ajax实现分页和删除(二)

来源:互联网 发布:淘宝网投诉卖家电话 编辑:程序博客网 时间:2024/05/17 21:48


在能够遍历显示出数据库中的所有信息之后,下面就开始在jsp页面中实现分页了

//添加分页实现的节点

    function pagesNode(pagesHtmlNode, rootNode) {

       //获取当前页

       var nowPage = rootNode.getAttribute("nowPage");

       //获取总页数

       var countPage = rootNode.getAttribute("countPage");

       //获取总记录数

       var countSize = rootNode.getAttribute("countSize");

 

       var MsgNode = document.createTextNode("当前是" + nowPage + "页,总共"

              + countPage + "页,共" + countSize + "记录");

       //清空方法

       clearNodes(pagesHtmlNode);

       var firstPage = document.createElement("a");

       firstPage.setAttribute("href", "#");

       firstPage.appendChild(document.createTextNode("首页"));

       firstPage.onclick = function() {

           nowPage = 1;

           //查询 当前页信息

           getPagesInfo(nowPage);

       }

       pagesHtmlNode.appendChild(firstPage);

       var backPage = document.createElement("a");

       backPage.setAttribute("href", "#");

       backPage.appendChild(document.createTextNode("上一页"));

       backPage.onclick = function() {

           nowPage = eval(nowPage + "-" + 1);

           if (nowPage <= 1) {

              nowPage = 1;

           }

           // //查询 当前页信息

           getPagesInfo(nowPage);

       }

       pagesHtmlNode.appendChild(backPage);

       var nextPage = document.createElement("a");

       nextPage.setAttribute("href", "#");

       nextPage.appendChild(document.createTextNode("下一页"));

       nextPage.onclick = function() {

           nowPage = eval(nowPage + "+" + 1);

           if (nowPage >= countPage) {

              nowPage = countPage;

           }

           //查询 当前页信息

           getPagesInfo(nowPage);

       }

       pagesHtmlNode.appendChild(nextPage);

       var lastPage = document.createElement("a");

       lastPage.setAttribute("href", "#");

       lastPage.appendChild(document.createTextNode("末页"));

       lastPage.onclick = function() {

           nowPage = countPage;

           //查询 当前页信息

           getPagesInfo(nowPage);

       }

       pagesHtmlNode.appendChild(lastPage);

       pagesHtmlNode.appendChild(MsgNode);

    }

 

 

//分页代码

    function getPagesInfo(nowPage) {

       //修改chksHtmlNode 为 默认值

       var chksHtmlNode = getNode("chk");

       chksHtmlNode.checked = null;

 

       var pagesHtmlNode = getNode("pages");

       var empsHtmlNode = getNode("emps");

       //从服务器端 传递过了xml数据  在这里解析

       //第一步:创建xmlHttpRequest对象

       var xmlHttp = createXMLHttpRequest();

       //清空

       clearNodes(empsHtmlNode);

       xmlHttp.onreadystatechange = function() {

           if (xmlHttp.readyState == 4) {

              if (xmlHttp.status == 200) {

                  //获取 xmlDocument

                  var xmlDoc = xmlHttp.responseXML;

                  //获取跟标签

                  var rootNode = xmlDoc.documentElement;

                  //获取 xml文件中 emp 的所有的元素节点

                  var emps = xmlDoc.getElementsByTagName("emp"); //emp id="xxx"

                  //获取 emp 节点里边所有的孩子节点

                  for ( var i = 0; i < emps.length; i++) {

                     //得到一个具体的emp:

                     var empNode = emps[i];

                     //为emp创建一行

                     var tr = document.createElement("tr");

                     //创建序号的 td

                     var td1 = document.createElement("td");

                     td1.appendChild(document.createTextNode(emps[i]

                            .getAttribute("id")));

                     tr.appendChild(td1);

                     var elementNodes = empNode.childNodes; //name ,sex ,age

                     for( var j = 0; j < elementNodes.length; j++) {

                         //节点是否是元素节点

                         if (elementNodes[j].nodeType == 1) {

                            var td2 = document.createElement("td");

                            td2

                                   .appendChild(document

                                           .createTextNode(elementNodes[j].firstChild.nodeValue));

                            tr.appendChild(td2);

                         }

                     }

                     var delchk = document.createElement("input");

                     delchk.setAttribute("type", "checkbox");

                     delchk.setAttribute("name", "delchk");

                     delchk

                            .setAttribute("value", emps[i]

                                   .getAttribute("id"));

                     tr.appendChild(delchk);

                     empsHtmlNode.appendChild(tr);

                     empsHtmlNode.appendChild(tr);

                  }

                  //调用分页创建分页相关的node节点对象

                  pagesNode(pagesHtmlNode, rootNode);

              }

           }

       }

       //第二步:规定请求参数

       xmlHttp.open("GET", "./employeeServlet?nowPage=" + nowPage

              + "&timeStamp=" + new Date().getTime(),true);

       //第三步:发送请求

       xmlHttp.send(null);

    }

此时的servlet与之前的相比,其实就是多传了几个参数

在for循环的前面加上要传递的参数

out.println("<?xmlversion=\"1.0\" encoding=\"UTF-8\"?>");

                   //在emps跟标签中就把 当前页   总记录数  总页数  传递过去了

                   out.println("<empsnowPage='"+page.getNowPage()+"'countSize='"+page.getCountSize()+"'countPage='"+page.getCountPage()+"'>");

                   for(inti=0;i<emps.size();i++){

                            Employeeemp = emps.get(i);

                            out.println("<empid='"+emp.getId()+"'>");

                            out.println("<name>"+emp.getHrName()+"</name>");

                            out.println("<sex>"+emp.getHrSex()+"</sex>");

                            out.println("<age>"+emp.getHrAge()+"</age>");

                            out.println("<birth>"+emp.getHrBirth()+"</birth>");

                            out.println("<salary>"+emp.getHrSalary()+"</salary>");

                            out.println("</emp>");

                   }

                   out.println("</emps>");

当然在传递参数之前还要先获取并判断一下

Stringnowpage=request.getParameter("nowPage");

                   System.out.println("========"+nowpage);

                   intnowPage=1;

                   if(nowpage==null){

                            nowPage=1;

                   }else{

                            nowPage=Integer.parseInt(nowpage);

                   }