通用分页☞【jar_over】
花了半天多的时间终于小见成果,但还是有些可以再封装的地方,今天就做到这里。有兴趣的你们去做吧。以后用起来就很省事了!
下面是完成这个通用分页所需要的一些技术点,分为展示层页面逻辑封装,和数据表的封装。
通用分页【完整版】 通用分页【页面显示 上】 通用分页【页面显示 下】 通用分页【数据的封装 上】 通用分页【数据的封装 下】 ResultSet自动封装数据到实体对象【上】 |
com.ant.util 中的 三个类是对我们有用的 |
打个 jar 包。
ok 新建个工程测试下
数据库还是用之前的那个数据库 参见 通用分页【数据的封装 上】 一文中的数据库脚本
项目的组织结构如下:
为项目添加jstl标签支持 用于页面循环集合数据 编写一个实体类 和数据库中的列名保持一致 新建一个servlet 添加 jdbc.jar / pagination.jar 包 |
UserInfo.java 实体类
package com.ant.po; public class UserInfo { private int userID; private String userName; private String userPass; public int getUserID() { return userID; } public void setUserID(int userID) { this.userID = userID; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPass() { return userPass; } public void setUserPass(String userPass) { this.userPass = userPass; } public String toString(){ return ""; } } |
PageServlet.java Servlet
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //取得jsp页面传递来的页数,参数名 index 不可更改 String index = request.getParameter("index"); int ind = 0; if (index == null) { ind = 1; } else { ind = Integer.parseInt(index); } //创建封装数据类的对象 call Call call = new Call(); //创建数组存储 存储过程的参数 Object obj[] = { "userInfo", "*", "userID", 5, ind, 0, 0 }; //调用执行存储过程的方法 List li = call.execProcedure( "com.microsoft.sqlserver.jdbc.SQLServerDriver", "jdbc:sqlserver://localhost:1433;databaseName=pagination", "sa", "sqlpwd", obj, UserInfo.class); //保存用户名 List<String> list = new ArrayList<String>(); //便利集合 for (int i = 0; i < li.size(); i++) { UserInfo ui = (UserInfo) li.get(i); list.add(ui.getUserName()); } //创建 分页对象 Pagination p = new Pagination(); //设置页数 p.setIndex(ind); //设置页大小 p.setPageSize(Integer.parseInt(obj[3].toString())); //设置总共的条数 p.setTotle(call.getTotle()); //设置数据 p.setData(list); //跳转的路径 p.setPath("page.do?"); request.setAttribute("page", p); request.getRequestDispatcher("index.jsp").forward(request, response); } |
index.jsp 页面显示
<%@ page language="java" pageEncoding="GBK"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <c:forEach items="${requestScope.page.data}" var="li" > ${li}<br> </c:forEach> ${requestScope.page.pageDisplay} </body> </html> |
访问下 PageServlet 映射名为 page
|
|