分页

1.定义。

public class Page {
	private int everyPage;			//每页显示记录数
	private int totalCount;			//总记录数
	private int totalPage;			//总页数
	private int currentPage;		//当前页
	private int beginIndex;			//查询起始点
	private boolean hasPrePage;		//是否有上一页
	private boolean hasNextPage;	//是否有下一页
	public Page(int everyPage, int totalCount, int totalPage, 
			int currentPage,int beginIndex, boolean hasPrePage,
			boolean hasNextPage) {	//自定义构造方法
		this.everyPage = everyPage;
		this.totalCount = totalCount;
		this.totalPage = totalPage;
		this.currentPage = currentPage;
		this.beginIndex = beginIndex;
		this.hasPrePage = hasPrePage;
		this.hasNextPage = hasNextPage;
	}
	public Page(){}					//默认构造函数
	public int getEveryPage() {		//获得每页显示记录数
		return everyPage;
	}
	public void setEveryPage(int everyPage) {//设置每页显示记录数
		this.everyPage = everyPage;
	}
	public int getTotalCount() {//获得总记录数
		return totalCount;
	}
	public void setTotalCount(int totalCount) {//设置总记录数
		this.totalCount = totalCount;
	}
	public int getTotalPage() {//获得总页数
		return totalPage;
	}
	public void setTotalPage(int totalPage) {//设置总页数
		this.totalPage = totalPage;
	}
	public int getCurrentPage() {//获得当前页
		return currentPage;
	}
	public void setCurrentPage(int currentPage) {//设置当前页
		this.currentPage = currentPage;
	}
	public int getBeginIndex() {//获得查询起始点
		return beginIndex;
	}
	public void setBeginIndex(int beginIndex) {//设置查询起始点
		this.beginIndex = beginIndex;
	}
	public boolean isHasPrePage() {//获得是否有上一页
		return hasPrePage;
	}
	public void setHasPrePage(boolean hasPrePage) {//设置是否有上一页
		this.hasPrePage = hasPrePage;
	}
	public boolean isHasNextPage() {//获得是否有下一页
		return hasNextPage;
	}
	public void setHasNextPage(boolean hasNextPage) {//设置是否有下一页
		this.hasNextPage = hasNextPage;
	}
}



2.分页信息辅助类。

public class PageUtil {
	public static Page createPage(int everyPage,int totalCount,int currentPage) {//创建分页信息对象
		everyPage = getEveryPage(everyPage);
		currentPage = getCurrentPage(currentPage);
		int totalPage = getTotalPage(everyPage, totalCount);
		int beginIndex = getBeginIndex(everyPage, currentPage);
		boolean hasPrePage = getHasPrePage(currentPage);
		boolean hasNextPage = getHasNextPage(totalPage, currentPage);
		return new Page(everyPage, totalCount, totalPage, currentPage,
				beginIndex, hasPrePage,  hasNextPage);
	}
	public static int getEveryPage(int everyPage) {		//获得每页显示记录数
		return everyPage == 0 ? 10 : everyPage;
	}
	public static int getCurrentPage(int currentPage) {	//获得当前页
		return currentPage == 0 ? 1 : currentPage;
	}
	public static int getTotalPage(int everyPage,int totalCount) {//获得总页数
		int totalPage = 0;
		if(totalCount != 0 &&totalCount % everyPage == 0) {
			totalPage = totalCount / everyPage;
		} else {
			totalPage = totalCount / everyPage + 1;
		}
		return totalPage;
	}
	public static int getBeginIndex(int everyPage,int currentPage) {//获得起始位置
		return (currentPage - 1) * everyPage;
	}
	public static boolean getHasPrePage(int currentPage) {//获得是否有上一页
		return currentPage == 1 ? false : true;
	}
	public static boolean getHasNextPage(int totalPage, int currentPage) {	//获得是否有上一页
		return currentPage == totalPage || totalPage == 0 ? false : true;
	}
}



3.设置分页信息。

Page page = PageUtil.createPage(5, replayDAO.findCountByMsgID(messageID), currentPage);//设置分页信息
List<Reply> replys = replayDAO.findReplayByMsgID(messageID, page);//分页查询消息回复
request.setAttribute("replyList", replys);//保存消息回复列表
request.setAttribute("page", page);//保存分页信息



4.当前页面。

int currentPage = 0;
String currentPageStr = request.getParameter("currentPage");

if(currentPageStr == null || "".equals(currentPageStr)){

currentPage = 1;
}else {
currentPage = Integer.parseInt(currentPageStr);
}


5.跳转到消息列表页。

MessageDAO messageDAO = MessageDAOFactory.getMessageAOInstance();
Page page = PageUtil.createPage(5, messageDAO.findAllCount(), currentPage);
List<Message> messages = messageDAO.findAllMessagee(page);
request.setAttribute("messageList", messages);
request.setAttribute("page", page);
ServletContext servletContext = getServletContext();
equestDispatcher dispatcher = servletContext.getRequestDispatcher("/msgList.jsp"); //跳转到消息列表页
dispatcher.forward(request, response);


6.jsp文件设置。

<div>
  <div align="center">
	<c:choose>
		<c:when test="${page.hasPrePage}">
			<a href="GetMessageList?currentPage=1">首页</a> | 
	<a href="GetMessageList?currentPage=${page.currentPage -1 }">上一页</a>
		</c:when>
		<c:otherwise>
			首页 | 上一页
		</c:otherwise>
	</c:choose>
	<c:choose>
		<c:when test="${page.hasNextPage}">
			<a href="GetMessageList?currentPage=${page.currentPage + 1 }">下一页</a> | 
	<a href="GetMessageList?currentPage=${page.totalPage }">尾页</a>
		</c:when>
		<c:otherwise>
			下一页 | 尾页
		</c:otherwise>
	</c:choose>
	当前为第${page.currentPage}页,共${page.totalPage}页
  </div>
</div>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值