分页算法(一)

	/**
	 * 分页样式:第一页、上一页、下一页、最后一页
	 * @param totalRows	总记录数
	 * @param pageSize	每页显示的记录数
	 * @param start		开始查询记录号
	 * @param actionUrl	访问URL
	 * @param albumId	相册ID
	 * @return
	 */
	public static String pagerInChat(int totalRows, int pageSize, int start, String actionUrl, String albumId) {
		//计算总的页数
		int totalPages = 1;
		if (totalRows > pageSize) {
			totalPages = (int) Math.ceil((double) totalRows / (double) pageSize);
		}
		//计算当前页是第几页
		int currentPage = start / pageSize + 1;
		
		StringBuilder pageBuilder = new StringBuilder();
		
		//总记录数小于每页记录数,则只显示一页
		if (totalRows <= pageSize) {
			pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_1\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_3\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_6\"></a>");
			pageBuilder.append("</div>");
		//当前页是第一页
		} else if (currentPage == 1) {
			pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_1\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * currentPage + 1).append("&albumId=").append(albumId).append("\" class=\"link_3\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\" class=\"link_6\"></a>");
			pageBuilder.append("</div>");
		//当前页是最后一页
		} else if (currentPage == totalPages) {
			pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (currentPage - 2) + 1).append("&albumId=").append(albumId).append("\"class=\"link_1\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\"class=\"link_3\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\"class=\"link_6\"></a>");
			pageBuilder.append("</div>");
		//当前页是中间某一页
		} else {
			pageBuilder.append("<div class=\"div_1\">").append(currentPage).append("/").append(totalPages).append("</div><div class=\"div_2\">");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=1&albumId=").append(albumId).append("\" class=\"link_5\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (currentPage - 2) + 1).append("&albumId=").append(albumId).append("\"class=\"link_1\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * currentPage + 1).append("&albumId=").append(albumId).append("\"class=\"link_3\"></a>");
			pageBuilder.append("<a href=\"").append(actionUrl).append("?start=").append(pageSize * (totalPages - 1) + 1).append("&albumId=").append(albumId).append("\"class=\"link_6\"></a>");
			pageBuilder.append("</div>");
		}
		
		return pageBuilder.toString();
	}
 

你可能感兴趣的:(算法)