Jsp

您所在的位置:网站首页 jsp中实现数据分页显示的必要步骤 Jsp

Jsp

2023-08-11 14:48| 来源: 网络整理| 查看: 265

创建一个分页类 从数据库中获取数据 servlet层获取数据 jsp页面展示

1、创建一个分页类 public class Pages { private int pageIndex;//当前页码(页面传递) private int pageSize;//页容量(后台设置) private int totalCount;//总记录数 (数据库查询) private int totalPages;//总页数(逻辑判断, //如果totalPages%pageSize=0输出totalPages/pageSize或者totalPages/pageSize) //查询Client表中的所有数据,返回一个list对象集合 private List datas; 在getTotalPages的get方法中设置默认总行数属性,不能更改 //总页数 = 总记录数 % 页容量 == 0 ? 总记录数 / 页容量 : 总记录数 / 页容量 + 1 return totalCount%pageSize == 0?totalCount/pageSize :totalCount/pageSize+1; 提供get/set方法 有参/无参构造方法 2、从数据中获取数据

Service实现类中的方法

/** * 分页查询 * pageSize 初始化页容量 * pageIndex 当前页码 * 返回分页集合类 */ @Override public Pages pageFindAll(int pageSize, int pageIndex) { Pages pages = new Pages(); pages.setPageSize(pageSize); pages.setPageIndex(pageIndex); pages.setTotalCount(dao.count()); pages.setDatas(dao.findPage(pageSize,pageIndex)); return pages; }

dao实现类中的方法(获取client对象集合、总数据行数)

返回client结果集

public List queryByPage(int pageIndex, int pageSize) { String sql = "select * from ( " + " select rownum rn, t1.* from ( " + " select * from tb_customer " + " ) t1 where rownum = ?"; /* * -- 开始序号 = (pageIndex -1) *pageSize + 1 -- 结束序号 = pageIndex * pageSize */ ResultSet rs = JdbcUtils.executeQuery(sql, pageIndex * pageSize, (pageIndex - 1) * pageSize + 1); List customers = new ArrayList(); // 3.解析 try { while (rs.next()) { Customer c = new Customer(); c.setCid(rs.getInt("cid")); c.setCname(rs.getString("cname")); c.setBirthday(rs.getString("birthday")); c.setCellphone(rs.getString("cellphone")); c.setEmail(rs.getString("email")); c.setDescription(rs.getString("description")); c.setGender(rs.getString("gender")); // 添加到List集合 customers.add(c); } } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.close(rs); } return customers; }

返回总行数

public int count() { String sql = "select count(1) from tb_customer"; ResultSet rs = JdbcUtils.executeQuery(sql); try { rs.next(); return rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.close(rs); } return 0; } 3、servlet层获取数据 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //编码的处理 request.setCharacterEncoding("UTF-8"); //设置响应编码 response.setContentType("text/html;"); //获取请求参数 //初始化页容量为5 int pageSize = 3; //获取当前页码 String pageIndexStr = request.getParameter("pageIndex"); //如果没有页码,默认为1 int pageIndex = 1; if(pageIndexStr != null ){ //如果有强转为int类型 pageIndex = Integer.parseInt(pageIndexStr); } //调用service中的方法 ClientService cs = new ClientServiceImpl(); Pages pages =cs.pageFindAll(pageSize, pageIndex); request.setAttribute("pages",pages); //转发 request.getRequestDispatcher("/list_page.jsp").forward(request, response); } 4、jsp页面显示数据(实现显示10条数据)

前一页 第${i }页 第${i }页 后一页 第${i }页 第${i }页 最后显示页面

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3