struts2標籤分頁和瀏覽器參數的操作

用struts2不能直接用for循環,可以用org.apache.struts2.util.Counter來替代:


<div class="navigation">
		<s:set value="#request.pageinfo" var="pinfo" />
		<s:set value="'interbank_deposit.jsp'" var="pageName" />
		<ol class="wp-paginate">
			<li><span class="title">Pages:</span></li>
			<!-- 計算起始頁 -->
			<s:if test="#pinfo.currentPageNo-2 >=1">
				<s:set value="#pinfo.currentPageNo-2" var="pageFirst" />
			</s:if>
			<s:else>
				<s:set value="1" var="pageFirst" />
			</s:else>
			<!-- 計算終止頁 -->
			<s:if test="#pinfo.currentPageNo+2 <= #pinfo.totalPage">
				<s:set value="#pinfo.currentPageNo+2" var="pageLast" />
			</s:if>
			<s:else>
				<s:set value="#pinfo.totalPage" var="pageLast" />
			</s:else>
			<!-- 準備遍歷  -->
			<s:bean name="org.apache.struts2.util.Counter" var="counter">
				<!-- 起始 -->
				<s:param name="first" value="#pageFirst" />
				<!-- 終止 -->
				<s:param name="last" value="#pageLast" />
				<!-- 上一頁 -->
				<li><a href="" οnclick="pinjie('${pageName}','pageNo',${pageinfo.currentPageNo-1},this)" title="上一頁" class="next"><</a></li>

				<!-- 是否顯示第一頁 -->
				<s:if test="#pinfo.currentPageNo >= 4">
				<li><a href="" title="1" οnclick="pinjie('${pageName}','pageNo',1,this)" class="page">1</a></li>
				</s:if>
				<!-- 是否顯示開始的省略號 -->
				<s:if test="#pinfo.currentPageNo > 4">
				<li><span class="gap">...</span></li>
				</s:if>
				<!-- 迭代遍歷 -->
				<s:iterator >
				<!-- 是否遍歷到當前頁 -->
				<s:if test="(current-1) == #pinfo.currentPageNo">
					<li><span class="page current"><s:property /></span></li>
				</s:if><s:else>
				<li><a href="" title="<s:property />" οnclick="pinjie('${pageName}','pageNo',<s:property />,this)" class="page" ><s:property /></a></li>
				</s:else>
				</s:iterator>
				<!-- 是否顯示開始的省略號 -->
				<s:if test="#pinfo.totalPage - #pinfo.currentPageNo > 3">
				<li><span class="gap">...</span></li>
				</s:if>
				<!-- 是否顯示最後一頁  -->
				<s:if test="#pinfo.totalPage - #pinfo.currentPageNo >= 3">
				<li><a href="" title="${pageinfo.totalPage }" οnclick="pinjie('${pageName}','pageNo',${pageinfo.totalPage },this)" class="page">${pageinfo.totalPage }</a></li>
				</s:if>
				<!-- 下一頁 -->
				<li><a href="" οnclick="pinjie('${pageName}','pageNo',${pageinfo.currentPageNo+1},this)" title="下一頁" class="next">></a></li>

			</s:bean>
		</ol>
	</div>

顯示效果如下:

分頁




pinjie()是js函數,功能是在瀏覽器原有的參數 下添加新的分頁參數,如果原來的參數已經存在,則替換原來的參數,它接受四個參數分別是:pageName:頁面名稱或url路徑,key:參數名稱,value:參數值

代碼如下:

function pinjie(pageName, key, value, thisid) {
    var search = window.location.search;
    var suoyin = search.indexOf(key + "="); //找到參數
    var s;
    if (suoyin == -1) //未找到參數
    {
        if (search == "") { //如果沒有任何參數
            s = "?" + key + "=" + value;
        } else {
            s = search + "&" + key + "=" + value;
        }
    } else {
        var reg = new RegExp(key + "=[A-Za-z0-9]+"); //參數爲字母數字
        s = search.replace(reg, key + "=" + value);
    }
    thisid.setAttribute("href", pageName + s);
}

還有一個百度來的js函數沒有用到,操作參數也很方便,GetQueryString(name),功能是得到瀏覽器name參數的值,代碼如下:

function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return "1";
}

















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章