我是靠谱客的博主 大意柠檬,最近开发中收集的这篇文章主要介绍Struts 循环分页,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<div class="page" align="right"><s:property value="nav.currentPage"/>/<s:property value="nav.allPages"/>
<s:if test="nav.allRows > nav.pageSize">

<% // 当前页数 %>
<s:set name="startPage" value="nav.currentPage" ></s:set>
<% // 总共有多少页 %>
<s:set name="allPages" value="nav.allPages" ></s:set>
<% // 计算 能分解成多少10页 %>
<s:set name="p" value="0" ></s:set>
<s:if test="(#startPage-1)%10 == 0">
<s:set name="p" value="(#startPage-1)/10" ></s:set>
</s:if>
<s:else>
<s:set name="p" value="(((#startPage-1)-(#startPage-1)%10)/10)" ></s:set>
</s:else>
<% // 当前第一页 就不能前一页 %>
<s:if test="#startPage == 1">
<font class="first selected" face=webdings color="'+alertcolor+'">9</font>
</s:if>
<% // 当前页不是第一页,就可以出首页 %>
<s:else>
<a class="navigation" href="<s:url action="index" portletUrlType="action"> <s:param name="currentPage"><s:property value='1'></s:property></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param> </s:url>">
<font class="first " face=webdings>9</font> </a>
</s:else>
<% // 当前页前面如果有10页就出现前十页 %>
<s:if test="#p*10 >0">
<s:if test="nav.currentPage-10<=0">
<a class="navigation" title="前十页" href="<s:url action="index" portletUrlType="action"> <s:param name="currentPage"><s:property value='1'></s:property></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param> </s:url>">
<font class="first" face=webdings>9</font> </a></s:if>
<s:else>
<a class="navigation" title="前十页" href="<s:url action="index" portletUrlType="action"> <s:param name="currentPage"><s:property value='1'></s:property></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param> </s:url>">
<font class="prefix" face=webdings>7</font> </a>
</s:else></s:if>
<b>
<% //显示以10页为单位,不足10页时,显示剩余页面 %>
<s:set name="forNum" value="0" ></s:set>
<%//变量,判断是否有后十页,有就赋值1 %>
<s:set name="isTenNum" value="0" ></s:set>
<% //如果所有页是10以内,返回当前的数字页,如果所有页除以10等于p(当前页取余10) 不存在p大于所有页除以10 %>
<s:if test="#allPages/10==0 || (#allPages/10) == (#p) ">
<s:set name="forNum" value="#allPages" ></s:set>
</s:if>
<s:else>
<s:set name="isTenNum" value="1" ></s:set>
<%// 存在后十页,值为当前页乘10%>
<s:set name="forNum" value="10*(#p+1)" ></s:set>
</s:else>
<% // 在如果有数据的情况下循环1-10的数字 %>
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="#p*10+1" />
<s:param name="last" value="#forNum" />
<s:iterator>

<s:if test="current == #startPage+1" >
<font color="'+alertcolor+'"><s:property/></font>
</s:if>
<s:else>

<a class="last" href="<s:url action="index" portletUrlType="action"> <s:param name="currentPage"><s:property/></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param> </s:url>" ><s:property></s:property></a>
</s:else>
</s:iterator>
</s:bean>

<s:if test="#isTenNum == 1">
<s:if test="nav.currentPage+10 >= nav.allPages">
<a class="navigation" title="后十页" href="<s:url action="index" portletUrlType="action"> <s:param name="currentPage"><s:property value='nav.allPages'></s:property></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param> </s:url>">
<font class="next" face=webdings>8</font> </a>
</s:if><s:else>
<a class="navigation" title="后十页" href="<s:url action="index" portletUrlType="action"> <s:param name="currentPage"><s:property value='nav.currentPage+10'></s:property></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param> </s:url>">
<font class="next" face=webdings>8</font> </a>
</s:else>
</s:if>

<s:if test="#startPage == #allPages">
<Font CLASS="last selected" face=webdings color="'+alertcolor+'">:</Font>
</s:if>
<s:else>
<a class="navigation" title="尾页" href="<s:url action="index" portletUrlType="action"><s:param name="currentPage"><s:property value='nav.allPages'></s:property></s:param><s:param name="onedistrict"><s:property value="onedistrict"/></s:param></s:url>"><font class="last selectd" color="'+alertcolor+'">:</font></a>

</s:else>
</b>
</s:if> </div>


<%-- 这是分页组件ajax版,即被嵌入到ajax显示的界面中,所以相应的链接均被替换为点击事件,以由上层调用方来确保相应的点击能够
按照正确的方式工作,规定相应的点击事件为clickPage(url),中间传递的参数为点击时触发的url链接.
created by flym 2010-09-20
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!-- 分页组件 -->
<s:if test="page.hasPreviousPage || page.hasNextPage">
<div class="turnpage">
<%-- 开头两个 --%>
<s:url id="goto"><s:param name="page.currentPage" value="1"/></s:url>
<s:a href="%{goto}" οnclick="clickPage('' + this.href);return false;" title="首页"><span class="ui-icon ui-icon-arrowthickstop-1-w"></span></s:a>
<s:if test="page.hasPreviousPage">
<s:url id="goto">
<s:param name="page.currentPage" value="%{page.currentPage - 1}"/>
</s:url>
</s:if>
<s:a href="%{goto}" οnclick="clickPage('' + this.href);return false;" title="上一页"><span class="ui-icon ui-icon-triangle-1-w"></span></s:a>
<%-- 页面显示 --%>

<s:if test="page.totalPage <= 6">
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="1"/>
<s:param name="last" value="page.totalPage"/>
</s:bean>
<s:iterator value="#counter">
<s:url id="goto"><s:param name="page.currentPage" value="top"/></s:url>
<s:if test="top == page.currentPage"><a class="cur"><span><s:property/></span></a></s:if>
<s:else><s:a href="%{goto}" οnclick="clickPage('' + this.href);return false;"><span><s:property/></span></s:a></s:else>
</s:iterator>
</s:if>
<s:else>
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first"
value="%{page.currentPage % 6 == 0 ? page.currentPage - 5 : page.currentPage / 6 * 6 + 1}"/>
<s:param name="last"
value="%{page.currentPage % 6 == 0 ? page.currentPage : (page.currentPage / 6 * 6 + 6) < page.totalPage ? (page.currentPage / 6 * 6 + 6) : page.totalPage}"/>
</s:bean>
<s:iterator value="#counter">
<s:url id="goto"><s:param name="page.currentPage" value="top"/></s:url>
<s:if test="top == page.currentPage"><a class="cur"><span><s:property/></span></a></s:if>
<s:else><s:a href="%{goto}" οnclick="clickPage('' + this.href);return false;"><span><s:property/></span></s:a></s:else>
</s:iterator>
</s:else>
<%-- 结尾两个 --%>
<s:url id="goto"><s:param name="page.currentPage" value="page.totalPage"/></s:url>
<s:if test="page.hasNextPage">
<s:url id="goto"><s:param name="page.currentPage" value="%{page.currentPage + 1}"/></s:url>
</s:if>
<s:a href="%{goto}" οnclick="clickPage('' + this.href);return false;" title="下一页"><span class="ui-icon ui-icon-triangle-1-e"></span></s:a>
<s:url id="goto"><s:param name="page.currentPage" value="page.totalPage"/></s:url>
<s:a href="%{goto}" οnclick="clickPage('' + this.href);return false;" title="尾页"><span class="ui-icon ui-icon-arrowthickstop-1-e"></span></s:a>  
页次:<s:property value="page.currentPage"/>/<s:property value="page.totalPage"/>  
每页:<s:property value="page.pageSize"/>条  
共计:<s:property value="page.totalCount"/>条  
<s:if test="page.totalPage <= 100">
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="1"/>
<s:param name="last" value="page.totalPage"/>
</s:bean>
<select οnchange="clickPage('' + $(this).val());return false;" size="1">
<s:iterator value="#counter">
<s:url id="goto"><s:param name="page.currentPage" value="top"/></s:url>
<s:if test="top == page.currentPage">
<option value="<s:property value="%{goto}"/>" selected="selected">第<s:property/>页</option>
</s:if>
<s:else>
<option value="<s:property value="%{goto}"/>">第<s:property/>页</option>
</s:else>
</s:iterator>
</select>
</s:if>
</div>
</s:if>

最后

以上就是大意柠檬为你收集整理的Struts 循环分页的全部内容,希望文章能够帮你解决Struts 循环分页所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部