1. 修改页面中datagrid的URL地址,访问action

    // 取派员信息表格
$('#grid').datagrid( {
iconCls : 'icon-forward',
fit : true,
border : false,
rownumbers : true,//显示行号
striped : true,
pageList: [3,5,10],
pagination : true,
toolbar : toolbar,//工具栏
url : "${pageContext.request.contextPath}/staffAction_pageQuery.action", //这里修改url
idField : 'id',
columns : columns,
onDblClickRow : doDblClickRow//指定数据表格的双击行事件
});

项目路径src\com\zang\bos\web\action下staffAction.java中的StaffAction类

/**
* 取派员管理
* @author zhaoqx
*
*/
@Controller
@Scope("prototype")
public class StaffAction extends BaseAction<Staff>{
//注入Service
@Autowired
private IStaffService staffService; private int page;//页码
private int rows;//每页显示的记录数
public void setRows(int rows) {
this.rows = rows;
} public void setPage(int page) {
this.page = page;
}

2. 创建PageBean类,封装分页信息

/**
* 封装分页信息
* @author zhaoqx
*
*/
public class PageBean {
private int currentPage;//当前页码
private int pageSize;//每页显示记录数
private DetachedCriteria detachedCriteria;//离线条件查询对象,包装查询条件
private int total;//总记录数
private List rows;//当前页需要展示的数据集合 public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public DetachedCriteria getDetachedCriteria() {
return detachedCriteria;
}
public void setDetachedCriteria(DetachedCriteria detachedCriteria) {
this.detachedCriteria = detachedCriteria;
}
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
}

3. 在StaffAction中提供pageQuery方法,提供两个setPage和setRows方法,接收页面提交参数

    private int page;//页码
private int rows;//每页显示的记录数
public void setRows(int rows) {
this.rows = rows;
} public void setPage(int page) {
this.page = page;
}
/**
* 分页查询方法
* @throws IOException
*/
public String pageQuery() throws IOException{
PageBean pageBean = new PageBean();
pageBean.setCurrentPage(page);
pageBean.setPageSize(rows);
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Staff.class);
pageBean.setDetachedCriteria(detachedCriteria); staffService.pageQuery(pageBean);
//将PageBean对象转为json返回
JSONObject jsonObject = JSONObject.fromObject(pageBean);
String json = jsonObject.toString();
ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8");
ServletActionContext.getResponse().getWriter().print(json);
return NONE;
}

4. 在src\com\zang\bos\dao路径下BaseDao中提供通用分页查询方法

      /**
* 通用分页查询方法
*/
public void pageQuery(PageBean pageBean) {
int currentPage = pageBean.getCurrentPage();
int pageSize = pageBean.getPageSize();
DetachedCriteria detachedCriteria = pageBean.getDetachedCriteria();
//总数据量----select count(*) from bc_staff
//改变Hibernate框架发出的sql形式
detachedCriteria.setProjection(Projections.rowCount());//select count(*) from bc_staff
List<Long> list = this.getHibernateTemplate().findByCriteria(detachedCriteria);
Long total = list.get(0);
pageBean.setTotal(total.intValue());//设置总数据量
detachedCriteria.setProjection(null);//修改sql的形式为select * from ....
//重置表和类的映射关系
detachedCriteria.setResultTransformer(DetachedCriteria.ROOT_ENTITY);
//当前页展示的数据集合
int firstResult = (currentPage - 1) * pageSize;
int maxResults = pageSize;
List rows = this.getHibernateTemplate().findByCriteria(detachedCriteria, firstResult, maxResults);
pageBean.setRows(rows);
}

效果:

最新文章

  1. 【uoj128】 NOI2015—软件包管理器
  2. 制作HP MicroServer Gen8可用的ESXi 5.x SD/TF卡启动盘
  3. Anti-pattern
  4. JS货币数字转换中文
  5. 对比学习UIKit和AppKit--入门级
  6. SQL server 2016 安装步骤
  7. 【Unity入门】编辑器常用视图介绍
  8. C#微信开发之旅--自定义菜单
  9. Spring4.3.1 JDBCTemplate操作数据库
  10. Struts2学习笔记之s:select标签
  11. 定义django admin的站点头,标题等
  12. 实现Unity编辑器模式下的旋转
  13. 利用python写一个简单的小爬虫 爬虫日记(1)(好好学习)
  14. JDK 11中的ZGC-一种可扩展的低延迟垃圾收集器
  15. 微信小程序 条件渲染 wx:if
  16. 连接zookeeper+solr的服务器超时
  17. 【干货】Windows系统信息收集篇
  18. 多线程学习-ListenableFuture使用介绍以及示例
  19. js object对象赋值bug和对象复制clone方法
  20. 返回顶部 fixed oncheck(点击按钮)

热门文章

  1. CF 1003C Intense Heat【前缀和/精度/双层暴力枚举】
  2. Problem D: 乌龟棋【四维dp】
  3. Codeforces 189A. Cut Ribbon
  4. Superbull(最大生成树)(Kruskal)
  5. [BZOJ5461][LOJ#2537[PKUWC2018]Minimax(概率DP+线段树合并)
  6. 【AC自动机】【矩阵乘法】【等比数列】hdu2243 考研路茫茫——单词情结
  7. 【树链剖分】【线段树】bzoj2157 旅游
  8. 每天一个linux命令12之top
  9. 一个页面如何放多个百度编辑器 Ueditor 1.4.3?PHP如何获取Ueditor 的值?
  10. jquery获取css颜色值返回RGB应用