SSH项目实现分页功能

先上一个简单的效果图:
这里写图片描述
首先先建立一个实体类

package com.entities;

import java.util.List;

public class PageBean<T> {
    private int currPage;   //当前页数
    private int pageSize;   //每页显示的记录数
    private int totalCount; //总记录数
    private int totalPage;  //总页数
    private List<T> list;   //每页显示的数据

    public int getCurrPage() {
        return currPage;
    }
    public void setCurrPage(int currPage) {
        this.currPage = currPage;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    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;
    }


}

写action的方法:

private Integer currPage = 1;

    public void setCurrPage(Integer currPage) {
        this.currPage = currPage;
    }

    public String findAllOnPage(){
    PageBean<AdminUsers> pageBean = adminUsersService.findByPage(currPage);
        ActionContext.getContext().getValueStack().push(pageBean);
        return "showList";
    }

注意,这里定义currPage为1,也防止了页面上可能会出现负数的页数的情况
service:

public PageBean<AdminUsers> findByPage(Integer currPage) {
        PageBean<AdminUsers> pageBean = new PageBean<AdminUsers>();
        //封装当前页数
        pageBean.setCurrPage(currPage);
        //封装每页显示记录数
        int pageSize = 5;
        pageBean.setPageSize(pageSize);
        //封装总记录数
        int totalCount = adminUsersDao.findCount();
        pageBean.setTotalCount(totalCount);
        //封装总页数
        double tc = totalCount;
        Double num = Math.ceil(tc / pageSize);
        pageBean.setTotalPage(num.intValue());
        //封装每页显示的数据
        int begin = (currPage - 1) * pageSize;
        List<AdminUsers> list = adminUsersDao.findByPage(begin,pageSize);
        pageBean.setList(list);
        return pageBean;
    }

dao层:

public int findCount() {
        String hql = "select count(*) from AdminUsers";
        Query query = getSession().createQuery(hql);
        List<Long> list = query.list();
        if(list.size() > 0){
            return list.get(0).intValue();
        }
        return 0;
    }

    public List<AdminUsers> findByPage(int begin, int pageSize) {
        Criteria c = getSession().createCriteria(AdminUsers.class);
        c.setFirstResult(begin);
        c.setMaxResults(pageSize);
        List<AdminUsers> list = c.list();
        return list;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值