java web项目分页

分页主要需要三个参数:1.某个对象的总数 2.每页展示的数量  3.能分为几页

1.获取总数:

select count(c.categoryId) from Category c 

public long getUserCount() {
		List us = listHql("select count(u.userId) from UserInfo u ");
		if(us == null){
			return 0;
		}
		return (Long) us.get(0);
	}


2.设置每页展示几条数据

int   pageSize  =  10 


3.可以被分为几页

public  int getPageCount(int count,  int pageSize) {
return (count + pageSize -1) / pageSize;
}



UserDao.java

public List<UserInfo> findAllByPage(int pageNo,int pageSize);

UserDaoImpl.java

public List<UserInfo> findAllByPage(int pageNo, int pageSize) {
		if(pageNo < 1){
			return null;
		}
		int offset = (pageNo - 1) * pageSize;
		return findByPage("from UserInfo", offset,pageSize);
	}
public class MyHibernateDaoSupport extends HibernateDaoSupport{
	
	@Autowired
	public void setMySessionFactory(SessionFactory sessionFactory) {
		super.setSessionFactory(sessionFactory);
	}
	
	public List findByPage(final String hql, final int offset,final int pageSize){
		Session session = getSessionFactory().getCurrentSession();
		List result = session.createQuery(hql).setFirstResult(offset).setMaxResults(pageSize).list();
		return result;
	}
}

UserService.java

public List<UserInfo> userList(int pageNo);


UserServiceImpl.java

public List<UserInfo> userList(int pageNo) {
		return userDao.findAllByPage(pageNo, User_page_size);
	}





4.根据页码获取该页码中的所有数据条数

①可以在Service中定义public List<Category> categoryList(int pageNo); 然后去调用Dao中实现的public List<Category> findAllByPage(int pageNo,int pageSize);


public List<Category> findAllByPage(int pageNo, int pageSize) {
if(pageNo < 1){
return null;
}
int offset = (pageNo - 1) * pageSize;
return findByPage("from Category", offset,pageSize); -------->去调用BaseDao中的方法,即HIbernate中的方法
}


②public List findByPage(final String hql, final int offset,final int pageSize){
Session session = getSessionFactory().getCurrentSession();
List result = session.createQuery(hql).setFirstResult(offset).setMaxResults(pageSize).list();
return result;

}


可想而知,在struts2的action中要获取 1.总数 2.获取可以分为几页  3 判断pageNo -------------->

private int pageNo;

public int getPageNo() {
return pageNo;
}


public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}


public String getAllCategory(){
int count = categoryService.getCategoryCount();
int pageCount = categoryService.getPageCount(count, categoryService.Category_page_size);
if(pageNo == 0){
pageNo = 1;
}
if(pageNo > pageCount){
pageNo = pageCount;
}
System.out.println("count="+count);
System.out.println("==pageCount=="+pageCount);
System.out.println("==pageNo=="+pageNo);
//List<Category> caList = categoryService.getAllCategory();
List<Category> caList = categoryService.categoryList(pageNo);
session.put("caList", caList);
session.put("count", count);
session.put("pageCount", pageCount);
session.put("pageNo", pageNo);
return "success";
}


jsp

<td colspan="8" class="pagin">
      <div class="pagelist"> 共<span class="">${sessionScope.count }</span>条记录,
      当前显示第&nbsp;<span class="current">${sessionScope.pageNo }&nbsp;</span>页,
      共&nbsp;<span class="">${sessionScope.pageCount }&nbsp;</span>页
      </div>
      <ul class="paginList">
      <li class="paginItem"><a href="${pageContext.request.contextPath}/category/getAllCategory?pageNo=${requestScope.pageNo-1 }"></a></li>
      <c:forEach var="s" begin="1" end="${sessionScope.pageCount}">
      <li><a href="${pageContext.request.contextPath}/category/getAllCategory?pageNo=${s }">${s}</a></li>
      </c:forEach>
      <li class="paginItem"><a href="${pageContext.request.contextPath}/category/getAllCategory?pageNo=${requestScope.pageNo+1 }"><span class="pagenxt"></span></a></li>
      </ul>
      </td>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值