赞
踩
分页可以简单的理解为是你在搜索百度一样:
其实我们仔细想想就能知道,分页无非就是变量的传递或者说是数据的实时变动(也可以说是更新/就像是1+1=2),现在就在分析是哪些变量:
1、pageMax —— 总页面数量(具体要看数据库有多少数据决定的)
2、pageSize —— 每个页面最多可以展示的数量(就是给他一个上限,不然数据太多也不好看)
3、pageIndex —— 当前页码,是从前端获取的(代表的是你切换到了第几页,不懂上面图片有框框标记)
4、start —— 每页开始的条数
5、end —— 每页结束的条数 (结合上面的变量start,就是从多少条开始再到多少条结束;例如1-9,页面数据从1条开始到第9条结束)
页码 | 开始条数 | 结束条数 |
---|---|---|
1 | 1 =(1-1)* pagSize + 1 | 5=1*5 |
2 | 6 = (2-1)* pagSize + 1 | 5=2*5 |
3 | 11 = (3-1)* pagSize + 1 | 5=3*5 |
4 | 16 = (4-1)* pagSize + 1 | 5=4*5 |
推算即可,由此知道了
start = (pageIndex-1) * pageSize + 1
end = (pageIndex) * pageSize
1、用户点击了下一页进行了切换,程序会跳转到 你写好数据处理页面
2、在用户点击切换页面的时候对数据的接收,然后处理添加到request作用域中,使得前端页面可以再次接收新的数据,做出对应的更换
public class LoadDataServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } int i; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { // 配置编码 req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); // 获取内置对象 PrintWriter out = resp.getWriter(); HttpSession session = req.getSession(); // 设置页码变量,表示当前页码 int pageIndex = 1; // 不是空数据 if (req.getParameter("pageIndex") != null) { // 将前端实时点击改变的页码接受 pageIndex = Integer.parseInt(req.getParameter("pageIndex")); } // 获取模糊查询的数据 String str = req.getParameter("str"); if (str == null) { str = ""; } // 将要绑定到界面的数据保存在request里面 List<News> list = new NewsDao().queryIndex(pageIndex,str); req.setAttribute("list", list); // 将页码保存在request,前端调用 req.setAttribute("pageIndex", pageIndex); // 将模糊查询数据保存在request作用域 req.setAttribute("str", str); //保存在request里面的数据要使用转发在能进行调用 req.getRequestDispatcher("/admin/admin.jsp").forward(req, resp);; } catch (Exception e) { e.printStackTrace(); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。