Java自学之路-Java中级教程-39:Hibernate实现页码计算和上下页翻页链接

上一节的Page类中还有三个属性pageTotal总页数,nextPage下一页,prePage上一页,这三个属性需要计算得到,可以在Page类中相应的getter实现。


总页数的计算公式是,总记录数量加上每一页显示数量减1,结果再除以每一页显示数量。


这个公式是推导出来的,简单来说总页数可以是总记录数除以每一页显示数量,这个好理解,但事实上这个直接除法运算的结果是整型,比如总记录数31,每页显示10条,总页数计算应该是4页而不是3页,因为剩下一条记录要单独成为一页。因此,要正确计算,就要在原来的总记录数上再加多一页的数量,即总记录数量加上每一页显示数量,比如31+10,再除以每页显示数量10,得到的才是4。但是如果总记录数30,再加10,除以每页显示数量10,得到4,实际这样整除了应该是整整3页才对,因此,这里还需要减1,这个公式才能得到正确的总页数。



	public int getPageTotal() {
		int pageTotal = (recordTotal + pageSize -1) / pageSize;
		return pageTotal;
	}



	public int getNextPage() {
		return pageNow +1;
	}



	public int getPrePage() {
		return pageNow -1;
	}


这三个方法有了之后,就可以在页面上加一个表单来填写要显示的当前页码了。



如果要使用HTML超链接,可以加入a href标签。点击这个“上一页”和“下一页”的链接,就可以实现翻页效果了。



如果再加入实际的数字页码,比如1,2,3,4,5 这些数字页码,可以在Page中定义一个列表对象,把这些页码放到列表对象中即可。


/**
 * 页码显示
 */
private List pageList;
public List getPageList() {
return pageList;
}

public void setPageList(List pageList) {
this.pageList = pageList;

}

同时在setRecordList方法中,把当前页的前5个页码和后5个页码放在pageList对象中。

	public void setRecordList(List recordList) {
		this.recordList = recordList;
		
		for(int i=pageNow-5; i< pageNow+5; i++) {
			pageList.add(i);
		}
		
	}

在jsp中使用jstl标签c:forEach把页码打印出来,并加入a href超链接就可以了。



猜你喜欢

转载自blog.csdn.net/weixin_41239710/article/details/80888409
今日推荐