goTag 自述
迫於對web頁面記錄集做分頁處理,自己實現了這個用於分頁的標簽,與大家共享。
這是一個簡單的web頁面分頁標簽。通過這個標簽可以將傳入的記錄集進行分頁顯示,你可以通過設置參數控制每頁顯示的記錄條數。用戶界面也較為簡單實用,提供首頁、尾頁、上一頁、下一頁和直接跳轉方式轉向指定頁面展示您所需要的記錄集。
使用方法:
將go-1.0.jar放到你的WEB-INF/lib目錄下
在頁面引入標簽
Jsp代碼
<%@ taglib prefix="go" uri="http://www.zlex.org/tag/go"%>
可參考如下代碼使用:
Jsp代碼
<% List<String> list = new ArrayList<String>(); for (int i = 1; i <= 100; i++) { list.add(String.valueOf(i)); } request.setAttribute("list", list); %> <c:set var="goUrl" value="go.jsp?method=list" scope="request" /> <c:choose> <c:when test="${empty param.pageNo}"> <c:set var="pageNo" value="1" scope="request" /> </c:when> <c:otherwise> <c:set var="pageNo" value="${param.pageNo}" scope="request" /> </c:otherwise> </c:choose> <go:go url="${goUrl}" pageNo="${pageNo}" pageNoName="${pageNo}" source="${list}" pageListName="${pageList}" pageSize="5"> <div> <br /> <c:forEach items="${pageList}" var="l"> <c:out value="${l}" /> <br /> </c:forEach> <br /> </div> <span>第<go:pageNo />頁,共<go:pageCount />頁</span> <span>[<a href="<go:first />">首頁</a>]</span> <span>[<a href="<go:last />">尾頁</a>]</span> <span>[<a href="<go:previous />">上一頁</a>]</span> <span>[<a href="<go:next />">下一頁</a>]</span> <span>跳轉至第<go:select />頁</span> </go:go>
其中,url為請求地址,pageNo為當前頁號,pageNoName為頁號參數名(可選,默認為pageNo),source為待分頁的源列表,pageListName為分頁集合名(可選,默認為pageList),pageSize為每頁顯示記錄的最多條數(可選,默認為10條記錄)。
當我們在Request請求中給定屬性"${url}"值為http://localhost:8080/goTag/go.jsp?method=list,"${pageNo}"值為1,如果設定的"${list}"總共有100條記錄,"${pageSize}"值為5,即每頁顯示5條記錄,可生成如下頁面:
Html代碼
<div> <br /> 1 <br /> 2 <br /> 3 <br /> 4 <br /> 5 <br /> <br /> </div> <span>第1頁,共5頁</span> <span>[<a href="go.jsp?method=list&pageNo=1">首頁</a>]</span> <span>[<a href="go.jsp?method=list&pageNo=20">尾頁</a>]</span> <span>[<a href="go.jsp?method=list&pageNo=1">上一頁</a>]</span> <span>[<a href="go.jsp?method=list&pageNo=2">下一頁</a>]</span> <span>跳轉至第<select onchange="window.location.href='go.jsp?method=list&pageNo='+this.value"> <option value="1" selected="selected">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select>頁</span>
注意事項:
1.在設定go標簽屬性url的時候,請確保該值不會包含go標簽屬性pageNoName的值。
2.請不要在同一個頁面內使用1套以上的<go:go />標簽。
3.未對source參數做緩存處理,請避免使用大集合以免影響性能。