ajax实现分页

<html>
<head>
    <title>Title</title>
</head>

<script src="https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js"></script>

<body>

<div>
    <table id="empTb">
        <tr id="tou">
            <th>员工编号</th>
            <th>员工姓名</th>
            <th>职位</th>
        </tr>
    </table>
    <div>
        <a href="javascript:void(0)" id="first" class="pages">首页</a>
        <a href="javascript:void(0)" id="prev" class="pages">上一页</a>
        <a href="javascript:void(0)" id="next" class="pages">下一页</a>
        <a href="javascript:void(0)" id="last" class="pages">最后一页</a>
    </div>

</div>
<script>
    var currPage;   //当前页
    var tPages;  //总页数
    $(function () {
        var getEmpList=function (curr){ //匿名函数 curr为当前页
            $.ajax({
                type: 'POST',
                url: '/EmpQueryPageServlet',
                dataType: 'JSON',
                data:{
                    pageSize:5,
                    pageNum:curr || 1,
                },
                success: function (result) {
                    $("#empTb").find(".nr").remove();
                    $.each(result.empList, function (index, emp) {
                        var $newtr = "<tr class='nr'>"
                            + "<td>" + emp.empno + "</td>"
                            + "<td>" + emp.ename + "</td>"
                            + "<td>" + emp.job + "</td>"
                            + "</tr>";
                        $("#empTb").append($newtr);
                    });
                    currPage = result.pageNum;
                    tPages = result.totalPages;
                }
            })
        }
        $(".pages").click(function (){ //class为pages的页面元素单击的时候
            //得到翻页的按钮id
            var flag = $(this).attr("id");
            if (flag == "first") {
                getEmpList(1);
            } else if (flag == "prev") {
                if (currPage==1){
                    getEmpList(currPage)
                }else {
                    currPage--;
                    getEmpList(currPage)
                }

            } else if (flag == "next") {
                if (currPage==tPages) {
                    getEmpList(currPage);
                }else{
                    currPage++;
                    getEmpList(currPage);
                }
            } else if (flag == "last") {
                getEmpList(tPages)
            }
        })
        getEmpList();
    })
</script>
</body>
</html>
@WebServlet("/EmpQueryPageServlet")
public class EmpQueryPageServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        int pageSize = Integer.parseInt(req.getParameter("pageSize"));
        int pageNum = Integer.parseInt(req.getParameter("pageNum"));
        
        Map<String,Object> params=new HashMap<String, Object>();
        params.put("pageNum",pageSize*(pageNum-1));
        params.put("pageSize",pageSize);
        
        SqlSession session= SqlSessionFactoryUtil.getSqlSession();
        EmpDao empDao=session.getMapper(EmpDao.class);
        List<Emp> list=empDao.getEmpsByPage(params);
        int count = empDao.getEmpCount();
        //总页数
        int totalPages = PageUtil.getTotalPages(count, pageSize);
        
        Map<String,Object> maps=new HashMap<String, Object>();
        maps.put("empList",list);
        maps.put("pageNum",pageNum);
        maps.put("pageSize",pageSize);
        maps.put("totalPages", totalPages);
        JsonUtil.getJson(req, resp, maps);
        
        
        
    }
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }
}
public interface EmpDao {
    List<Emp> getAllEmps();
    
    void insertEmps(Emp emp);
    
    void updateEmps(Emp emp);
    
    Emp getEmpById(int empno);
    
    List<Emp> getEmpBySalAndDept(Emp emp);
    
    List<Emp> getEmpBySalOrDept(Emp emp);
    
    int delEmps(int[] arrays);
    
    List<Emp> getEmpsByPage(Map<String,Object> params);
    
    int getEmpCount();
    
    
}
    <select id="getEmpsByPage" parameterType="java.util.Map" resultType="emp">
        select * from emp order by empno
        limit #{pageNum},#{pageSize}

    </select>

    <select id="getEmpCount" resultType="int">
        select count(1) from emp
    </select>

封装的两个工具类

public class JsonUtil {
    /**
     * 其他类型转json
     * @param request
     * @param response
     * @param obj
     */
    public static void getJson(HttpServletRequest request, HttpServletResponse response, Object obj) {
        response.setContentType("text/html;charset=UTF-8");
        
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", -10);
        PrintWriter out = null;
        try {
            out = response.getWriter();
            String jsonStr = JSON.toJSONString(obj);
            out.print(jsonStr);
            out.flush();
            
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            out.close();
        }
        
        
    }
}

public class PageUtil {
    public static int getTotalPages(int count, int pageSize) {
        
        //总页数
        int totalPages = 0;
        //三元运算符
        if (count % pageSize == 0) {
            totalPages = count / pageSize;
        } else {
            totalPages = (count / pageSize) + 1;
        }
        return totalPages;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值