SpringMVC自定义分页
来源:互联网 发布:wordpress淘宝客模板 编辑:程序博客网 时间:2024/06/06 08:24
后台数据
Controller
@RequestMapping(value = "/page", method = RequestMethod.GET) public String page(final Model model, @RequestParam(value = "page", required = false, defaultValue = "1") final int pageNum, @RequestParam(value = "pageSize", required = false, defaultValue = "1") final int pageSize) { //模拟数据限定pageNum范围为1-6 //模拟数据限定pageSize值为1 List<String> results = new ArrayList<>(); results.add("数据1"); results.add("数据2"); results.add("数据3"); results.add("数据4"); results.add("数据5"); results.add("数据6"); final SearchPageData<String> data = new SearchPageData<>(); data.setPageNo(pageNum); data.setPageSize(pageSize); data.setResults(Collections.singletonList(results.get(pageNum-1))); data.setTotalRecords(results.size()); model.addAttribute("pageData", data); return "page"; }
SearchPageData
/** * */package xxx.xxx.xxx;import java.util.List;/** * @author Administrator * */public class SearchPageData<T> { private int pageStep = 4; private int pageNo; private int pageSize; private int totalRecords; private List<T> results; /** * @return the pageNo */ public int getPageNo() { return pageNo; } /** * @param pageNo the pageNo to set */ public void setPageNo(int pageNo) { this.pageNo = pageNo; } /** * @return the pageSize */ public int getPageSize() { return pageSize; } /** * @param pageSize the pageSize to set */ public void setPageSize(int pageSize) { this.pageSize = pageSize; } /** * @return the totalRecords */ public int getTotalRecords() { return totalRecords; } /** * @param totalRecords the totalRecords to set */ public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } /** * @return the results */ public List<T> getResults() { return results; } /** * @param results the results to set */ public void setResults(List<T> results) { this.results = results; } public int getFirstPageNo() { return 1; } public int getPreviousPageNo() { if (pageNo <= 1) { return 1; } return pageNo -1; } public int getNextPageNo() { if (pageNo >= getTotalPages()) { return getTotalPages() == 0 ? 1 : getTotalPages(); } return pageNo + 1; } public int getLastPageNo() { return getTotalPages() == 0 ? 1 : getTotalPages(); } /* getDisableFirst() also is ok */ public boolean isDisableFirst() { return pageNo == getFirstPageNo(); } /* getDisableLast() also is ok */ public boolean isDisableLast() { return pageNo == getLastPageNo(); } /* getEllipsisBefore() also is ok */ public boolean isEllipsisBefore() { return getBegin() != getFirstPageNo(); } /* getEllipsisAfter() also is ok */ public boolean isEllipsisAfter() { return getEnd() != getLastPageNo(); } public int getTotalPages() { return totalRecords == 0 ? 1 : (totalRecords + pageSize - 1) / pageSize; } public int getBegin() { if (pageNo > pageStep + 1 && getTotalPages() > 2 * pageStep + 1) { return pageNo - pageStep; } return getFirstPageNo(); } public int getEnd() { if (getTotalPages() > 2 * pageStep + 1) { if (pageNo > getTotalPages() - pageStep && pageNo <= getTotalPages()) {// return getLastPageNo(); } else if (pageNo > pageStep + 1 && pageNo <= getTotalPages() - pageStep) { return pageNo + pageStep; } else { return 2 * pageStep + 1; } } return getLastPageNo(); }}
页面
page.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="pager" tagdir="/WEB-INF/tags" %><c:if test="${not empty pageData.results }"> <c:forEach items="${pageData.results}" var="item"> ${item} </c:forEach> <pager:pager pager="${pageData }"/></c:if>
/WEB-INF/tags/pager.tag
<%@ tag pageEncoding="utf-8" %><%@ tag body-content="empty" trimDirectiveWhitespaces="true" %><%@ attribute name="pager" required="true" type="com.example.data.SearchPageData" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><p class="text-muted text-right">${pager.pageNo } / ${pager.totalPages } 页,共 ${pager.totalRecords } 条记录</p><ul class="pagination"> <li class="${pager.disableFirst?'disabled':'' }"> <%-- <a href="<c:url value="/page/${pager.firstPageNo }"/>">首页</a> --%> <a href="?page=${pager.firstPageNo }">首页</a> </li> <li class="${pager.disableFirst?'disabled':'' }"> <%-- <a href="<c:url value="/page/${pager.previousPageNo }"/>">«</a> --%> <a href="?page=${pager.previousPageNo }">«</a> </li> <li class="${pager.ellipsisBefore?'':'hidden' }"> <a href="#" style="pointer-events: none;">...</a> </li> <c:forEach var="pageNo" begin="${pager.begin }" end="${pager.end }"> <li class="${pager.pageNo==pageNo?'active':'' }"> <%-- <a href="<c:url value="/page/${pageNo }"/>">${pageNo }</a> --%> <a href="?page=${pageNo }">${pageNo }</a> </li> </c:forEach> <li class="${pager.ellipsisAfter?'':'hidden' }"> <a href="#" style="pointer-events: none;">...</a> </li> <li class="${pager.disableLast?'disabled':'' }"> <%-- <a href="<c:url value="/page/${pager.nextPageNo }"/>">»</a> --%> <a href="?page=${pager.nextPageNo }">»</a> </li> <li class="${pager.disableLast?'disabled':'' }"> <%-- <a href="<c:url value="/page/${pager.lastPageNo }"/>">尾页</a> --%> <a href="?page=${pager.lastPageNo }">尾页</a> </li></ul>
效果
阅读全文
0 0
- SpringMVC自定义分页
- springMVC分页
- SpringMVC 分页
- Springmvc分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- Linux命令后台执行
- CSS盒模型
- monkey命令
- Redis分布式锁核心代码
- Java通过webservice获取天气预报情况
- SpringMVC自定义分页
- 移动端1px解决方案
- LWC 58:725. Split Linked List in Parts
- Cloud + TiDB 技术解读
- Rabbitmq常用口令
- ext6.2如何在grid表格列里加button按钮
- Gitlab10.0域账号LDAP集成
- 关于generate用法的总结【Verilog】
- HDU 1012 u Calculate e