參考這兩篇文章實現了自己的分頁
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>