public class PageHtml<T> {
public Map showPageHtml(Integer currentPage, Integer pageSize, Integer count) {
//计算总页数
int st = 0, ed = 0, all_pager = 0;
int page_merchant = count / pageSize;
int page_remainder = count % pageSize;
if (page_remainder > 0) {
all_pager = page_merchant + 1;
} else {
all_pager = page_merchant;
}
Map<String, Object> map = new HashMap<String, Object>();
if (all_pager < 5) {
st = 1;
ed = all_pager + 1;//5 + 1;
} else {
if (currentPage < 3) {
st = 1;
//最多显示5个页码
ed = 5 + 1;
} else {
if (currentPage + 2 < all_pager) {
st = currentPage - 2;
ed = currentPage + 2 + 1;
} else {
st = all_pager - 5 + 1;
ed = all_pager + 1;
}
}
}
StringBuilder sb = new StringBuilder();
sb.append("<nav aria-label="Page navigation">");
sb.append("<ul class="pagination">");
sb.append("<li>");
sb.append("<a aria-label="Previous" onclick="prevPage()">");
sb.append("<span aria-hidden="true">«</span>");
sb.append("</a>");
sb.append("</li>");
sb.append("<li><a onclick="firstPage()">首页</a></li>");
for (int i = st; i < ed; i++) {
if (i == currentPage) {
sb.append("<li class="active" id="selected"><a onclick="pageIndex(" + i + ")">" + i + "</a></li>");
} else {
sb.append("<li><a onclick="pageIndex(" + i + ")">" + i + "</a></li>");
}
}
sb.append("<li><a onclick="lastPage()">尾页</a></li>");
sb.append("<li>");
sb.append("<a aria-label="Next" onclick="nextPage()">");
sb.append("<span aria-hidden="true">»</span>");
sb.append("</a>");
sb.append("</li>");
sb.append("</ul>");
sb.append("</nav>");
String html = sb.toString();
map.put("conut", count);
map.put("html", html);
map.put("pageTotal", all_pager);
return map;
}
}
参考