先写公用类PageBean泛型类
public class PageBean<T> {
//当前页
private Integer currentPage;
//总记录
private Integer totalCount;
//每页条数
private Integer pageSize;
//总页数
private Integer totalPage;
//开始位置
private Integer begin;
//list集合
private List<T> list;public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public Integer getBegin() {
return begin;
}
public void setBegin(Integer begin) {
this.begin = begin;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
action方法中查询所有数据
private Integer currentPage; get/set方法
//分页方法
public String listpage(){
if(currentPage==null){
currentPage = 1;
}
PageBean<User> pageBean = userService.listpage(currentPage);
//放到与对象里面
request.setAttribute("pageBean",pageBean);
//放到与对象里面
request.setAttribute("pageBean",pageBean);
return "listpage";
}
service中方法
//分页
public PageBean<User> listpage(Integer currentPage) {
PageBean<User> pageBean = new PageBean<User>();
//当前页
pageBean.setCurrentPage(currentPage);
//总记录数 调用一个方法findCount()
int totalCount = userDao.findCount();
pageBean.setTotalCount(totalCount);
//meiye 条数
int pageSize= 3;
//总页数
int totalPage = 0;
if(totalCount%pageSize==0){
totalPage = totalCount/pageSize;
}else{
totalPage = totalCount/pageSize+1;
}
pageBean.setTotalPage(totalPage);
//开始位置
int begin = (currentPage-1)*pageSize;
//list集合
List<User> list = userDao.findAll(begin,pageSize);
pageBean.setList(list);
return pageBean;
}dao层中
//总条数
@SuppressWarnings("all")
public int findCount() {
List<Object> list =(List<Object>) getSession().createQuery("select count(*) from User").list();
if(list!=null && list.size()>0){
Object obj = list.get(0);
Long log= (Long)obj;
int count = log.intValue();
return count;
}
return 0;
}
//反回list集合分页查询
@SuppressWarnings("all")
public List<User> findAll(int begin, int pageSize) {
/*//第一种方式
//得到工厂
SessionFactory sessionFactory = this.getHibernateTemplate().getSessionFactory();
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("from User");
query.setFirstResult(begin);
query.setMaxResults(pageSize);
List<User> list = query.list();*/
//第二种、使用离线对象和hibernateTemplate实现
//创建离线对象 设置对哪个实体类操作
DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
//调用模板方法
List<User> list = (List<User>)this.getHibernateTemplate().findByCriteria(criteria,begin,pageSize);
return list;
}
jsp页面
<div class="header-info">
共<span class="info-number">[${pageBean .totalCount}]</span>条结果,
分成<span class="info-number">[${pageBean.totalPage}]</span>页显示,
当前第<span class="info-number">[${pageBean.currentPage}]</span>页.
<c:if test="${pageBean.currentPage ne 1}">
[<a href="${pageContext.request.contextPath }/user_listpage?currentPage=${pageBean.currentPage-1}">前一 页</a>]
</c:if>
<c:if test="${pageBean.currentPage ne pageBean.totalPage}">
[<a href="${pageContext.request.contextPath }/user_listpage?currentPage=${pageBean.currentPage+1}">后一页</a>]
</c:if>
</div>
4万+

被折叠的 条评论
为什么被折叠?



