1:首先说说Ibatis的分页,
首先我们通过
/**
count 查询结果总是的sql
statement 查询结果集的sql
parameter 查询时候需要的参数
pageNo 从页面传进来的第多少页
pageSize 每页展现多少条记录
*/
public Page pagedQuery(String count, String statement, Object parameter,
int pageNo, int pageSize) {
//Assert.isTrue(pageNo >= 1, "pageNo should start from 1");
if (pageNo < 1)
pageNo = 1;
// 查询总数
Integer totalCount = (Integer) this.getSqlMapClientTemplate()
.queryForObject(count, parameter);
Assert.notNull(totalCount, "totalCount Error");
if (totalCount == null || totalCount.intValue() == 0) {
return new Page();
}
List list;
int totalPageCount = 0;
int startIndex = 0;
// 给默认的每页展现多少条记录
if (pageSize <= 0)
pageSize = Page.DEFAULT_PAGE_SIZE;
// 总页数
totalPageCount = (totalCount / pageSize);
totalPageCount += (((totalCount % pageSize) > 0) ? 1 : 0);
// 从第几条记录下标开始取值
if (totalPageCount > pageNo) {
startIndex = (pageNo - 1) * pageSize;
} else {
startIndex = (totalPageCount - 1) * pageSize;
}
//查询得到结果集
list = getSqlMapClientTemplate().queryForList(statement, parameter, startIndex,
pageSize);
return new Page(startIndex, totalCount, pageSize, list);
}
页面用jquery pager插件如下代码:
首先引入:
<link href="${ctx}/js/jquery/pager/Pager.css" rel="stylesheet" type="text/css" />
<script src="${ctx}/js/jquery/pager/jquery.pager.js" type="text/javascript"></script>
然后js代码大致如下:
<script type="text/javascript">
//分页传递数据: pageNo当前页数 , totalPageCount 总共的页数这个是后台java代码查询出来的,
var pageCount = '${totalPageCount?default(1)}';
var pageNo ='${pageNo?default(1)}';
$(document).ready(function() {
if(pageCount > 1){
$("#pager").pager({ pagenumber:pageNo, pagecount: pageCount, buttonClickCallback: PageClick });
}
$("#submitId").click(function(){
$("#pageNo").val(1);
});
});
PageClick = function(pageclickednumber) {
$("#pager").pager({ pagenumber: pageclickednumber, pagecount: pageCount, buttonClickCallback: PageClick });
$("#pageNo").val(pageclickednumber);
$('#queryForm').submit();
}
</script>