easyui结合ssh的分页写法

1.创建分页工具类:

package cn.lichenyang.dms.entity;

import java.util.List;

/**
 * 分页工具类
 * @author Administrator
 *
 * @param <T>
 */
public class Pager<T> {

	private int PageSize=10; 		//一页显示多少条
	private int page=1;    			//第几页
	private int firstIndex; 		//从第几个开始
	private int total;				//数据库中总记录数
	private int totalPageCount;  	//共有多少页
	private List<T> list;			//显示多少条数据中所有对象所在的集合
	private List<T> rows;			//
	private T entity;				//需要分页的实体类
	
	public List<T> getRows() {
		return rows;
	}
	public void setRows(List<T> rows) {
		this.rows = rows;
	}
	public T getEntity() {
		return entity;
	}
	public void setEntity(T entity) {
		this.entity = entity;
	}
	public List<T> getList() {
		return list;
	}
	public void setList(List<T> list) {
		this.list = list;
		this.rows = list;
	}
	public int getPageSize() {
		return PageSize;
	}
	public void setPageSize(int pageSize) {
		this.PageSize = pageSize;
	}
	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal(int totalRecordCount) {
		this.total = totalRecordCount;
	}
	public int getFirstIndex() {
		return (this.getPage()-1)*this.getPageSize();	//返回从第几条数据开始
	}
	public int getTotalPageCount() {
		return (this.getTotal()-1)/this.getPageSize()+1;//返回共多页
	}
	
	
	
}
	
2.得到总记录数
	//查询总记录数
	public long getTotalRecordCount(Pager<T> pager) {
		return  (Long)this.getHibernateTemplate().find("select count(0) from Entity").get(0);
	}

3.分页实现类,一下的所有T代表实体类,这里使用泛型表现出来的

	public Pager<T> queryAllByPager(Pager<T> pager){
	
		List<T> list = this.getHibernateTemplate().execute(new HibernateCallback<List<T>>() {
			@Override
			public List<T> doInHibernate(Session session) throws HibernateException {
				// TODO Auto-generated method stub
				String hql="from Entity";
				Query query = session.createQuery(hql);
				query.setFirstResult(pager.getFirstIndex()); //设置从第几条开始
				query.setMaxResults(pager.getPageSize());	//设置一页显示多少条数据
				return query.list();	//返回的是设置了第一条数据的索引到显示多少条的所有对象组成的集合
			}
		});
		pager.setList(list);	//把上面返回的集合设置给pager
		pager.setTotal((int)this.getTotalRecordCount(pager));	//得到总记录数
		return pager;
	}

4.action中掉用的方法(private属性的get,set方法可能有些问题,复制粘贴的时候需要注意,private声明出的所有属性不要误删了),jsp界面中的代码就不copy出来了,根据easyui的规范来就行了

package cn.lichenyang.dms.web.action;

import java.util.List;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.lichenyang.dms.entity.BcStaff;
import cn.lichenyang.dms.entity.Pager;
import cn.lichenyang.dms.service.IBcStaffService;

@Controller
@Scope("prototype")
@Namespace("/staff")
@ParentPackage("json-default")
public class BcStaffAction extends BaseAction {

	@Autowired    //接口
	private IBcStaffService bcStaffService;
	
	private Pager<BcStaff> pager;
	
	private int page;	//easy从界面中穿过来的page(固定)
	private int rows;	//接收easyui穿过来的页面大小(固定)
	

	@Action(value="queryAllByPager",results= {
			@Result(name="queryAllByPager",type="json",params= {"root","pager"})
			})
	public String queryAllByPager() {
		if(pager == null) {
			pager = new Pager<BcStaff>();
			pager.setPage(page);		//设置首页
			pager.setPageSize(rows);	//设置一页显示多少条数据
		}
		pager = bcStaffService.queryAllByPager(pager);	//没有返回
		return "queryAllByPager";
	}
	
	
	//=================================================================================
	public int getPage() {
		return page;
	}


	public void setPage(int page) {
		this.page = page;
	}

	public int getRows() {
		return rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}
	public Pager<BcStaff> getPager() {
		return pager;
	}

	public void setPager(Pager<BcStaff> pager) {
		this.pager = pager;
	}
	public void setStaffs(List<BcStaff> staffs) {
		this.staffs = staffs;
	}
	public List<BcStaff> getStaffs() {
		return staffs;
	}
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值