java web 前端页面的分页逻辑

 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>
时间: 2024-10-14 15:00:22

java web 前端页面的分页逻辑的相关文章

web前端页面项目经验总结

项目时间:2016年4月5日--4月9日项目名称:阿七果子园web前端页面项目内容:    1.HTML5+CSS+JavaScript(banner+timer)+JQuery(small_banner)+引入(jquery-1.4.2.min.js):    2.2天完成页面架构,2天添加特效,半天查看.检查.配兼容问题,半天总结整理:    3.期间遇到问题,自己网上查资料,最终解决:    4.寻找合适的js效果时,用时太久,而且有些不适合,不过最终都配到合适的:    5.写代码时,一

web前端页面性能优化小结

转自blueidear:http://bbs.blueidea.com/thread-2936073-1-1.html PS:结合了精英的思想和自己的一些小小的总结~ 影响用户访问的最大部分是前端的页面.网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端呢?其实应该是属于功能的表现. 而我们建设网站的目的是什么呢?不就是为了让目标人群来访问吗?所以我们可以理解成前端才是真正和用户接触的. 除了后台需要在性能上做优化外,

web 前端页面性能优化总结

影响用户访问的最大部分是前端的页面.网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端呢?其实应该是属于功能的表现. 而我们建设网站的目的是什么呢?不就是为了让目标人群来访问吗?所以我们可以理解成前端才是真正和用户接触的. 除了后台需要在性能上做优化外,其实前端的页面更需要在性能优化上下功夫,只有这样才能给我们的用户带来更好的用户体验.不仅仅如此,如果前端优化 得好,他不仅可以为企业节约成本,他还能给用户带来更多的用户

web前端页面解决中文传参乱码问题

问题背景:在项目中往往会涉及到前端跳转页面时要传一些参数给下一个页面,如果参数是英文或者数字的时候就很好解决,然而有时候传参会涉及到中文汉字,这个时候再单纯的拼接往往就会导致中文乱码,下面我们就该讨论一下如何解决中文传参乱码的问题. 假设A页面跳转到B页面并且A向B传参,首先在A页面中要调用这个方法:encodeURI("这里是中文参数"); 完整的拼接效果为: window.location.href="B.html?&title="+encodeURI(

Java Web前端到后台常用框架介绍

转自: http://blog.csdn.net/u013142781/article/details/50922010 一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spri

web前端页面性能

前段性能的意义 对于访问一个网站,最花费时间的并不是后端应用程序处理以及数据库等消耗的时间,而是前端花费的时间(包括请求.网络传输.页面加载.渲染等).根据web优化的黄金法则:80%的最终用户响应时间花在前端程序上,而其大部分时间则花在各种页面元素,如图像.样式表.脚本和Flash等,的下载上.减少页面元素将会减少HTTP请求次数.这是快速显示页面的关键所在.根据著名"2-5-8原则",用户访问一个页面: 当用户能够在2秒以内得到响应时,会感觉系统的响应很快: 当用户在2-5秒之间得

java web前端easyui(layout+tree+双tabs)布局+树+2个选项卡tabs

1.列出要实现的样式: 2.实现的代码: 分三大部分: 1):页面主体部分:mian.vm <html> <head> <title>Ks UI</title> #parse("ui:include") <style> body{padding:0;margin:0} </style> <script> $(document).ready(function(){ var tabs_content = $

JDBC在Java Web中的应用——分页查询

分页查询 通过JDBC实现分页查询的方法有很多种,而且不同的数据库机制也提供了不同的分页方式,在这里介绍两种非常典型的分页方法. 通过ResultSet的光标实现分页 通过ResultSet的光标实现分页,优点是在各种数据库上通用,缺点是占用大量资源,不适合数据量大的情况. 2. 通过数据库机制进行分页 很多数据库自身都提供了分页机制,如SQL Server中提供的top关键字,MySQL数据库中提供的limit关键字,它们都可以设置数据返回的记录数. 通过各种数据库的分页机制实现分页查询,其优

移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析html代码,更好地将移动web前端页面表现出来。本文整理一些常用的meta标签

<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --><html lang="zh-cmn-Hans"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa --><head> <!-- 声明文档使用的字符编码 --> <meta charset='utf-8'> <!-- 优先使用 IE 最新版本和 Chrome -->