【java技术】实现后台分页技术

【java技术】实现后台分页技术

需求 :实现分页技术。

技术难点:客户端为服务器提供当前页(currentPage)和每页显示条数(rows)。服务器返回PageBean对象

解决办法:新建一个Page的对象,属性值有页码数,每页显示的数量,开始值。

效果图
在这里插入图片描述

一下是java后端代码的编写(参考)
封装PageBean类
public class PageBean<T> {
    private int totalCount;// 总记录数
    private int totalPage;// 总页码数
    private List<T> list;// 每页的数据
    private int currentPage;// 当前的页码
    private int rows;//每页显示的记录数


    @Override
    public String toString() {
        return "PageBean{" +
                "totalCount=" + totalCount +
                ", totalPage=" + totalPage +
                ", list=" + list +
                ", currentPage=" + currentPage +
                ", rows=" + rows +
                '}';
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        this.rows = rows;
    }
}

FindUserByPageServlet类
@WebServlet("/findUserByPageServlet")
public class FindUserByPageServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String currentPage = request.getParameter("currentPage");// 获取当前页码
        String rows = request.getParameter("rows");// 每页显示的条数

        if(currentPage == null || "".equals(currentPage)){
            currentPage = "1";
        }
        if(rows == null || "".equals(rows)){
            rows = "5";
        }
        UserServiceImpl service = new UserServiceImpl();
        PageBean<User> pb = service.findUserByPage(currentPage,rows);

        // System.out.println(pb.toString());

        request.setAttribute("pb",pb);
        request.getRequestDispatcher("/list.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

服务器返回PageBean对象的findUserByPage()方法
 public PageBean<User> findUserByPage(String _currentPage, String _rows) {
        int currentPage =Integer.parseInt(_currentPage);
        int rows = Integer.parseInt(_rows);

        if (currentPage <=0){
            currentPage = 1;
        }
        PageBean<User> pb = new PageBean<User>();
        pb.setCurrentPage(currentPage);
        pb.setRows(rows);

        // 调用dao查询总条数
        int totalCount = dao.finTotalCount();
        pb.setTotalCount(totalCount);

        // 盗用dao查询list集合

        // 计算开始的记录值
        int start = (currentPage - 1) * rows;
        List<User>list = dao.findByPage(start,rows);
        pb.setList(list);

        //计算总页码数
        int totalPage = (totalCount % rows) == 0 ? totalCount/rows : (totalCount/rows) + 1;
        pb.setTotalPage(totalPage);

        return pb;
    }
调用dao里的方法(数据库查询)

    public int finTotalCount() {
        String sql = "select count(*) from user";
        return template.queryForObject(sql,Integer.class);
    }


    public List<User> findByPage(int start, int rows) {
        String sql = "select * from user limit ? , ?";
        return template.query(sql,new BeanPropertyRowMapper<User>(User.class),start,rows);
    }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值