参考这两篇文章实现了自己的分页
jsp页面
<script type="text/javascript">
$(function(jsonArray) {
$('#TestDatagrid').datagrid({
title : 'datagrid实例',
iconCls : 'icon-ok',
width : 600,
pageSize : 5,//默认选择的分页是每页5行数据
pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
striped : true,//设置为true将交替显示行背景。
collapsible : true,//显示可折叠按钮
toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个
url:'partyList.action',//url调用Action方法
method : 'get',
loadMsg : '数据装载中......',
singleSelect:true,//为true时只能选择单行
fitColumns:true,//允许表格自动缩放,以适应父容器
remoteSort : false,
pagination : true,//分页
rownumbers : true //行数
})
});
</script>
<table id="TestDatagrid" class="easyui-datagrid"
data-options="toolbar:'#pmmtoolbar',border:false,singleSelect:true" >
<thead>
<tr>
<th data-options="field:'belongsBranch'">所属支部</th>
<th data-options="field:'joinDate'">入党日期</th>
</tr>
</thead>
</table>
action方法
import net.sf.json.JSONObject;
private String rows;// 每页显示的记录数
private String page;// 当前第几页
//private JSONArray jsonArray;
private JSONObject jsonObj;
public JSONObject getJsonObj() {
return jsonObj;
}
public void setJsonObj(JSONObject jsonObj) {
this.jsonObj = jsonObj;
}
/**
* 查询所有数据列表
*
* @return
*/
public String list() {
try {
List<PartyMember> list = partyMemberService.getList(page, rows);
// 转换为JSON
Map<String, Object> jsonMap = new HashMap<String, Object>();// 定义map
jsonMap.put("total",partyMemberService.getTotal());// total键 存放总记录数,必须的
jsonMap.put("rows", list);// rows键 存放每页记录 list
// JSONArray json = new JSONArray();
// jsonArray=json.put(jsonMap);
// System.out.println(jsonArray.length());
jsonObj = JSONObject.fromObject(jsonMap);//格式化result
// 一定要是JSONObject
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
dao方法
public interface PartyMemberDao {
//分页
public List getList(int currentpage,int pagesize) throws Exception;//根据第几页获取,每页几行获取数据
public int getTotal() throws Exception;//统计一共有多少数据
}
daoimpl方法
//-----------------------分页-----------------------------
@Override
public List getList(final int currentpage, final int pagesize) throws Exception {
//当为缺省值的时候进行赋值
//currentpage = Integer.parseInt((page == null || page == "0") ? "1": page);//第几页
// pagesize = Integer.parseInt((rows == null || rows == "0") ? "10": rows);//每页多少行
// 通过一个HibernateCallback对象来执行查询
List list = (List) getHibernateTemplate().execute(
new HibernateCallback() {
// 实现HibernateCallback接口必须实现的方法
public Object doInHibernate(Session session)
throws HibernateException {
// 执行Hibernate分页查询
List result = session.createQuery("from PartyMember")
.setFirstResult((currentpage - 1) * pagesize).setMaxResults(pagesize)
.list();
return result;
}
});
return list;
}
@Override
public int getTotal() throws Exception {
// 统计一共有多少数据
return getHibernateTemplate().find("from PartyMember").size();
}
service方法
//分页
public List getList(String page, String rows) throws Exception;//根据第几页获取,每页几行获取数据
public int getTotal() throws Exception;//统计一共有多少数据
serviceimpl方法
@Override
public List getList(String page, String rows) throws Exception {
//当为缺省值的时候进行赋值
int currentpage = Integer.parseInt((page == null || page == "0") ? "1": page);//第几页
int pagesize = Integer.parseInt((rows == null || rows == "0") ? "10": rows);//每页多少行
List list = dao.getList(currentpage, pagesize);
return list;
}
@Override
public int getTotal() throws Exception {
return dao.getTotal();
}
struts.xml
<action name="partyList" class="partyAction" method="list">
<result type="json">
<param name="root">jsonObj</param>
</result>
</action>