jQuery ajax实现分页查询的前台代码

<body>
<%--    table用来存放值--%>
    <table border="1" cellpadding="0" cellspacing="0" id="table">

    </table><br/>
<%--    div用来存放数值--%>
    <div id="div"></div>
</body>
</html>
<script type="text/javascript">
    //一进页面就先执行show方法
    show();
        //执行show方法的时候给一个参数currentPage,当前页面的参数
        function show(currentPage){
            //如果当前页面为空
            if(currentPage == null){
                //那么就赋值为1
                currentPage = 1;
            }
            //拿到标签并且转换为jquery对象
            var $table = $("#table");
            var $div = $("#div");
            //追加一个头部识别的东西
            $table.append("<tr><td>编号</td><td>创建人</td><td>总金额</td><td>状态</td><td>执行人</td></tr>");
            $.ajax({
                type        :"post",
                url         :"/ajax/servlet/ResponseJson",
                //把当前页面这个参数传递到后台
                data        :"currentPage="+currentPage,
                //获得的是一个json数据类型
                dataType    :"json",
                //成功的话通过相应得到一个result结果
                success:function(result) {
                    //先移除$table中的值,否则会一直在屏幕存在,没有替换的效果
                    $table.empty("");
                    //得到json数据中的名为list的数据
                    var resultList = result.list;
                    //得到json数据中的名为totalPage的数据
                    var resultTotalPage = result.totalPage;
                    //将这两个数据转换为jQuery对象
                    var $resultList = $(resultList);
                    var $resultTotalPage = $(resultTotalPage);
                    //通过each遍历输出
                    $resultList.each(function () {
                            $table.append("<tr><td>" + this.taskNo + "</td><td>" + this.informant + "</td><td>" + this.amount + "</td><td>" + this.status + "</td><td>" + this.pendingPerson + "</td></tr>");
                        });
                    //移除,道理和上面相同
                    $div.empty("");
                    //通过for循环输出
                    for(var i = 1;i<=resultTotalPage;i++){
                        //这里需要注意一下,循环的时候,追加了a标签,但是这个a标签不执行跳转,只执行show方法
                        //并且通过点击时间的show方法,把当前页面的值传递过去
                        $div.append("<a href='javascript:void(0)' onclick='show("+i+")'>"+i+"</a>");
                    }
                }
            })
        }
</script>

servlet中的代码

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置字符集编码格式
        resp.setContentType("text/html;charset=utf-8");
        //声明并且赋值
        PrintWriter out = resp.getWriter();
        //调用service业务逻辑层
        SelectNarutoService selectNarutoService = new SelectNarutoServiceImpl();
        //实例化分页工具类
        Pagination pagination = new Pagination();
        //实例化集合
        List<Naruto> list = new ArrayList<>();
        //调用数据访问层的方法得到总数据
        int totalData = selectNarutoService.selectNumber();
        //得到当前页数
        int currentPage = Integer.parseInt(req.getParameter("currentPage"));
        //将当前页数和总数据放入之后可以在下面得到总页数
        pagination.setCurrentPage(currentPage);
        pagination.setTotalData(totalData);
        //得到总页数
        int totalPage = pagination.getTotalPage();
        //得到想要查询数据的一个集合
        list = selectNarutoService.selectNaruto(pagination);
        //拼接字符串,这里比较难
        //道理就是将一个集合通过引入的jar包的方法(推荐使用阿里巴巴的,这里使用的我腾的jar包,咱也不知道从哪里来的,咱也不敢问)
        // 转换为了json数据,并且这个数据的名字为list
        //第二个数据的名字为totalPage,数据为总页面
        //将其都变为字符串的数据拼接到了一起,并且赋值给一个String数据类型
        String str = "{\"list\":"+JSONArray.fromObject(list)+",\"totalPage\":"+totalPage+"}";
        //String str = String.valueOf(JSONArray.fromObject(list));
        //输出(相应)到前端(jsp/thml)页面
        out.print(str);
重难点简介,首先一进入页面就要先执行show()方法
//一进页面就先执行show方法
    show();

得到当前页面

//如果当前页面为空
            if(currentPage == null){
                //那么就赋值为1
                currentPage = 1;
            }

输出并且在点击的时候从进入show()方法,并且将当前页面 传递过去

$div.append("<a href='javascript:void(0)' onclick='show("+i+")'>"+i+"</a>");

在这里进行传递

//把当前页面这个参数传递到后台
       data        :"currentPage="+currentPage,

servlet中最重要的就是拼接的时候,这里比较麻烦,各种转义符和连接

String str = "{\"list\":"+JSONArray.fromObject(list)+",\"totalPage\":"+totalPage+"}";