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";
}

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值