您的位置:首页 > 其它

SSH--分页处理

2017-10-05 20:55 295 查看
Action代码:

/*
* 分页查询处理
*/
@SuppressWarnings({ "unused", "unchecked" })
public String execute(){
String hql = "select count(*) from Goods";
Integer totalNum = (int) goodsBid.totalNum(hql).longValue();
pageSize = 3;
totalPage = (totalNum%pageSize==0)?(totalNum/pageSize):(totalNum/pageSize+1);
if(pageNum == null){
pageNum = 1;
}
if(pageNum < 1){
pageNum = 1;
}
if(pageNum > totalPage){
pageNum = totalPage;
}

String hql2 = "from Goods order";
List list = goodsBid.searchByHql(hql2,(pageNum-1)*pageSize,pageSize);
request.put("onSaleGoodsList", list);
return "OnSaleGoodsList";
}

DaoImpl层实现:
/*
* 通过Hql语句 分页查询当前页的商品列表
*/
@Override
public Long totalNum(String hql) {
return (Long) super.getHibernateTemplate().find(hql).iterator().next();
}

/*
* 获取商品记录总数
*/
@SuppressWarnings("unchecked")
@Override
public List searchByHql(final String hql,final Integer begin,final Integer length) {
return super.getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
List list = session.createQuery(hql)
.setFirstResult(begin)
.setMaxResults(length)
.list();
return list;
}
});
}


jsp显示层:
<s:property value="pageNum"/>/<s:property value="totalPage"/>
<s:url action="page" var="firstPage">
<s:param name="pageNum">1</s:param>
</s:url><s:a href="%{firstPage}">首页</s:a>

<s:url action="page" var="prePage">
<s:param name="pageNum">
<s:property value="pageNum-1"/>
</s:param>
</s:url><s:a href="%{prePage}">上一页</s:a>

<s:url action="page" var="nextPage">
<s:param name="pageNum">
<s:property value="pageNum+1"/>
</s:param>
</s:url><s:a href="%{nextPage}">下一页</s:a>

<s:url action="page" var="lastPage">
<s:param name="pageNum">
<s:property value="totalPage"/>
</s:param>
</s:url><s:a href="%{lastPage}">末页</s:a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: