通用分页【完整版】

通用分页☞【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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值