SSH——基于datagrid实现分页查询
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);
}
效果:

SSH——基于datagrid实现分页查询的更多相关文章
- JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能
1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...
- ssh框架中的分页查询
ssh中的分页查询是比较常用的,接下来我用代码来介绍如何实现一个分页查询 首先建立一个Model用来储存查询分页的信息 package com.haiziwang.qrlogin.utils; imp ...
- 基于InfluxDB实现分页查询功能
InfluxDB作为时序数据库中的翘楚,应用范围非常广泛,尤其在监控领域. 最近做了一个功能,将InfluxDB中的数据查询出来后,在前台分页展现,比如每页10条,一共100页,可以查看首页.末页,进 ...
- 基于ArcGISServer进行分页矢量查询的方案进阶
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 在空间查询中,我们对查询结果要求以分页形式进行展示.G ...
- 项目一:第三天 收派标准添加 收派标准分页查询(基于datagrid实现) 收派标准修改快递员添加 快递员列表查询
1.收派标准添加 n jQuery easyUI window使用 n jQuery easyUI form表单校验 n 收派标准添加页面调整—url params n 服务端实现—三层 2.jQue ...
- SSh结合Easyui实现Datagrid的分页显示
近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. ...
- schemaeasyui实例:SSh结合Easyui实现Datagrid的分页显示
查了好多资料,发现还是不全,干脆自己整理吧,最少保证在我的做法正确的,以免误导读者,也是给自己做个记载吧! 克日学习Easyui,发现非常好用,界面很雅观.将学习的心得在此写下,这篇博客写SSh结合E ...
- 实例:SSh结合Easyui实现Datagrid的分页显示
近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
随机推荐
- IE8的 JS 引擎如此不堪(二) - 解决方案
上一篇,IE8的JS引擎内存不停增长,是因为动态生成了一个image对象导致的.有了病因,就开始寻找治疗方法. 1.使用一个固定的img对象,但是无法获取地址改变后的图片大小,最总还是放弃: 2.寻找 ...
- 平滑部署war包到tomcat-deploy.sh
#!/bin/sh #check war exists echo "check war exists" war_file_path=/data/tomcat8/webapps wa ...
- scrapy详细数据流走向(个人总结)
直接从数据流的角度来说比较容易理解: ·1.Spider创建一个初识url请求,把这个请求通过Engine转给Scheduler调度模块.然后Scheduler向Engine提供一个请求(这个请求是一 ...
- 灯泡游戏 (Kruskal)(并查集)
灯泡游戏 时间限制: 1 Sec 内存限制: 64 MB提交: 9 解决: 4[提交][状态][讨论版] 题目描述 有 一个n行m列的矩阵,左上角坐标是(0,0),右下角坐标是(n-1,m-1). ...
- Jenkins获取分支的插件
Jenkins--->xxxx--->配置--->参数化构建过程--->选择Git Parameter Plug-In插件 Name: git_branch Descripti ...
- WebApi 的三种寄宿方式 (二) - 宿主和控制器不在一个程序集
新建一个类库: SelfHost: 方法一: 1.添加对MyControllers类库的引用. 2.在控制台代码中加入一行代码: 当然,可以添加多个程序集.(记得引用) var config = ne ...
- Struts2遇到Caused by Action class not found这类问题怎么解决
刚才碰到个小坑,显示的错误是struts.xml找不到Action,明显不会有错的因为之前还是正常跑起来的,然后百度google搜了一通没解决,maven clean用了没反应还是照样报错. 最后在百 ...
- [BZOJ 1195] 最短母串
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1195 Solution: 看到数据范围n<=12,就要往状压DP上想 为了保证后项 ...
- [BZOJ 1305] 跳舞
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1305 Solution: 发现res是否可行具有单调性,二分答案 容易看出每次check ...
- 【线段树】Codeforces Round #393 (Div. 1) C. Nikita and stack
就是给你一些元素的进栈 出栈操作,不按给定的顺序,要求你对于每次输入,都依据其及其之前的输入,判断出栈顶的元素是谁. 用线段树维护,每次push,将其位置的值+1,pop,将其位置的值-1.相当于寻找 ...