码迷,mamicode.com
首页 > 编程语言 > 详细

java web 前端页面的分页逻辑

时间:2015-06-24 10:46:57      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

 1 <div class="divBody">
 2   <div class="divContent">
 3     <%--上一页 --%>
 4 <c:choose>//page是你通过查询出来当前页得所有的对象数据  pagenum是当前页  如果=1  那么(上一页)的没有连接的 显示出来
 5     <c:when test="${page.pagenum eq 1 }"><span class="spanBtnDisabled">上一页</span></c:when>
 6     //否则显示有链接的 上一页  那么连接传值就(当前页-1)就好了
 7     <c:otherwise><a href="你要访问的servlet或者action&pagenum=${pager.pagenum-1}" class="aBtn bold">上一页</a></c:otherwise>
 8 </c:choose>
 9         
10         
11 
12 <%--我们需要计算页码列表的开始和结束位置,即两个变量begin和end
13 计算它们需要通过当前页!
14     下面试一页面只显示6页为依据 当然你想显示多少就显示多少 可以自己设置
15 1. 总页数不足6页--> begin=1, end=最大页
16 2. 通过公式设置begin和end,begin=当前页pagenum-2,end=当前页pagrnum+3
17 3. 如果begin<1,那么让begin=1,end=6  
18 4. 如果end>最大页, 让begin=总页数-5, end=总页数
19  --%>
20 
21  //总页数:page.pageCount
22  //当前页:page.pagenum
23  <c:choose>
24     // 因为我们在页面上只显示6页的数据 如果总页数小于6也的话 
25      <c:when test="${总页数 <= 6 }">
26          <c:set var="begin" value="1"/>//设置begin的值是1
27          <c:set var="end" value="总页数"/>//设置end的值是总页数
28      </c:when>
29     //否则做以下事情
30      <c:otherwise>
31         //如果总页数大于6的话 在这里我们假设总页数为7页 那么页面显示为1 2 3 4 5 6 ... 
32         //我们来说一下几种发生的情况 
33         //1.当前页 如果是第3页得话 bengin就是3-2=1 end就是3+3=6 那么页面显示就是 1 2 3 4 5 6 ...
34         //2.当前页 如果是第4页得话  begin就是4-2=2 end就是4+3=7 那么页面显示就是 2 3 4 5 6 7 没有省略号了 1和...消失
35         //3.当前页 如果是第5,6,7页得话  begin就是5-2=3 6-2=4 7-2=5 end就是5+3=8 6+3=9 7+3=10 但是最大页是7没有到8 9 10 就会出下以下判断  页面显示  2 3 4 5 6 7
36         //4.当前页 如果是第1,2页得话  begin就是1-2=-1 和2-2=0  end就是1+3=4 2+3=5  但是开始页begin必须是1 满足不了情况 就会出下以下判断 页面显示 1 2 3 4 5 6 ...
37           <c:set var="begin" value="${当前页-2 }"/>
38          <c:set var="end" value="${当前页 + 3}"/>
39         //如果begin是-1和0的话 小于1  那么就设置开始页begin为1  结束页end为6 页面显示1 2 3 4 5 6 ...
40          <c:if test="${begin < 1 }">
41            <c:set var="begin" value="1"/>
42            <c:set var="end" value="6"/>
43          </c:if>
44         //如果结束end页 大于了总页数  也就是上面的第三种情况 end结束页为8 9 10的话超过总页数7 那么设置开始bengin为 当前页就是总页数7-5=2
45         //结束就是总页数 页面显示为 2 3 4 5 6 7 
46           <c:if test="${end > 总页数 }">
47            <c:set var="begin" value="${总页数-5 }"/>
48            <c:set var="end" value="${总页数 }"/>
49          </c:if>         
50      </c:otherwise>
51  </c:choose>
52  
53  //获取到begin和end的值循环
54  <c:forEach begin="${begin }" end="${end }" var="i">
55    <c:choose>
56          <c:when test="${i eq 当前页 }">
57            <span class="spanBtnSelect">${i }</span>//如果i等于当前页  那就不给链接
58          </c:when>
59          <c:otherwise>
60            <a href="${你访问的action或者servlet }&pc=${i}" class="aBtn">${i }</a>//否则就给链接
61          </c:otherwise>
62    </c:choose>
63            
64               
65  </c:forEach>
66     <%-- 计算begin和end --%>
67       <%-- 如果总页数<=6,那么显示所有页码,即begin=1 end=${总页数} --%>
68         <%-- 设置begin=当前页码-2,end=当前页码+3 --%>
69           <%-- 如果begin<1,那么让begin=1 end=6 --%>
70           <%-- 如果end>最大页,那么begin=最大页-5 end=最大页 --%>
71 
72 
73     //如果结束页小于总页数7 那么显示...
74     <%-- 显示点点点 --%>
75     <c:if test="${end < 总页数 }">
76       <span class="spanApostrophe">...</span>
77     </c:if> 
78 
79     
80      <%--下一页 --%>
81 <c:choose>
82     <c:when test="${当前页 eq 总页数 }"><span class="spanBtnDisabled">下一页</span></c:when>
83     <c:otherwise><a href="${你要访问的action和servlet }&pagenum=${当前页+1}" class="aBtn bold">下一页</a></c:otherwise>
84 </c:choose>
85         
86         
87     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
88     
89     <%-- 共N页 到M页 --%>
90     <span>共${page.pageCount }页</span>
91     <span>到</span>
92     <input type="text" class="inputPageCode" id="pageCode" value="${当前页 }"/>
93     <span>页</span>
94     <a href="javascript:_go();" class="aSubmit">确定</a>
95   </div>
96 </div>

 

java web 前端页面的分页逻辑

标签:

原文地址:http://www.cnblogs.com/wenjie123/p/4596971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!