SSH框架里面实现分页

1、分页的实体Bean

@Repository
public class PageList {
 @Autowired//注释调用service
 private ToolService toolservice;
 @Autowired
 private Fenye fenye;
 private int nowpage = 1;//当前页
 private int countpage = 1;//总页数
 private int countList = 1;//总记录数
 private int begin = 0;//开始条数
 private int pageNum = 4;//每一页显示条数


 public List getpageList(String hql,String nowpage){
  int n = 1;
  try{
    n = Integer.parseInt(nowpage);
  }catch(Exception e){
   n = 1;
  }
   
  int listnum = this.toolservice.getPageNum(hql);
     this.setNowpage(n);
     this.setCountList(listnum);
       this.returnNowpage();
  List list = this.toolservice.getPageList(hql, this.begin, this.pageNum);
     return list;
 }
 /**
  * 得到返回的页数
  */
 public void returnNowpage(){
  if(this.nowpage >= this.countpage){
   if(this.countpage> 1){
    this.begin = (this.countpage - 1) * this.pageNum;
    this.nowpage = this.countpage;
   } else {
    this.begin = 0;
    this.nowpage = 1;
   }
  } else {
   if (this.nowpage <= 1) {
    this.begin = 0;
    this.nowpage = 1;
   } else {
     this.begin = (this.nowpage - 1) * this.pageNum;

   }
  }
  
 }
 
 public ToolService getToolservice() {
  return toolservice;
 }
 public void setToolservice(ToolService toolservice) {
  this.toolservice = toolservice;
 }
 public int getNowpage() {
  return nowpage;
 }
 public void setNowpage(int nowpage) {
  this.nowpage = nowpage;
 }
 
 public Fenye getFenye() {
  return fenye;
 }
 public void setFenye(Fenye fenye) {
  this.fenye = fenye;
 }

 public int getCountpage() {
  return countpage;
 }
 public void setCountpage(int countpage) {
  this.countpage = countpage;
 }
 public int getCountList() {
  return countList;
 }
 public void setCountList(int countList) {
  this.countList = countList;
  this.countpage = (this.countList -1)/this.pageNum + 1;//计算总页数
 }

 public int getBegin() {
  return begin;
 }
 public void setBegin(int begin) {
  this.begin = begin;
 }
 public int getPageNum() {
  return pageNum;
 }
 public void setPageNum(int pageNum) {
  this.pageNum = pageNum;
 }

}

2、DAO层的方法

A:

public List findTermEmploy(String hql, int begin,int last) {
  
  Session session = this.hibernatetemplate.getSessionFactory().openSession();
  List list1 = session.createQuery(hql).setFirstResult(begin).setMaxResults(last).list();
  List list = new ArrayList();
  int sessionclose = 0;//控制session是否关闭
   for(int i=0;i<list1.size();i++){
    Employee employee = (Employee) list1.get(i);
    list.add(list1.get(i));
    sessionclose++;
   }
   if(sessionclose >= list1.size()){
    session.close();
   }

  return list;
 }

B:

public List findByPage(final String hql, final Object value,final int offset, final int pageSize) {
 
  List list=hibernateTemplate
  .executeFind(new HibernateCallback()
  {

   public Object doInHibernate(org.hibernate.Session session)
     throws HibernateException, SQLException {
    List result=session.createQuery(hql)
    .setParameter(0, value)
    .setFirstResult(offset)
    .setMaxResults(pageSize)
    .list();
    return result;
   }
  });
  
  return list;
 
 }

3、在Action里面用注释的方式注入分页Bean

调用它的的getpageList(String hql,String nowpage)方法就好了,传入HQL语句和要寻找的页码

4、在JSP页面里,

        上一页:nowpage =${nowpage + 1}

        下一页:nowpage =${nowpage - 1}

         首 页:nowpage = 1;

        尾   页:nowpage = pageCount;//总页数

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值