效果如上图所示!最多显示10条;
完整jsp和后台代码如下:

  1. <%@ page contentType="text/html;charset=UTF-8" %>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
  4. <%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
  5. <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
  6. <c:set var="ctx" value="${pageContext.request.contextPath}"/>
  7. <html>
  8. <head>
  9. <meta charset="UTF-8">
  10. <title></title>
  11. <script src="${ctx}/js/common/common.js" type="text/javascript"></script>
  12. <script src="${ctx}/js/page/page.js" type="text/javascript"></script>
  13. <script type="text/javascript">
  14.  
  15. function firstpage(){
  16. $("#pageIndex").val(${page.startPage});
  17. $("#form1").submit();
  18. }
  19. function lastpage(){
  20. $("#pageIndex").val(${page.currPage-1});
  21. $("#form1").submit();
  22. }
  23. function currpage(){
  24. $("#pageIndex").val(${page.currPage});
  25. $("#form1").submit();
  26. }
  27. function gotoPage(i){
  28. var pageNo=$("#gotoPage"+i+"").text();
  29. $("#pageIndex").val(pageNo);
  30. $("#form1").submit();
  31. }
  32. function nextpage(){
  33. $("#pageIndex").val(${page.currPage+1});
  34. $("#form1").submit();
  35. }
  36. function endpage(){
  37. $("#pageIndex").val(${page.totalPage});
  38. $("#form1").submit();
  39. }
  40.  
  41. //多文本省略号显示
  42. $(function(){
  43. $(".company").each(function(){
  44. var maxwidth=15;
  45. if($(this).text().length>maxwidth){
  46. $(this).text($(this).text().substring(0,maxwidth));
  47. $(this).html($(this).html()+'…');
  48. }
  49. });
  50. })
  51. </script>
  52. </head>
  53. <body class="bglightgray">
  54. <div class="div-wrapper" >
  55. <div class="div-wrapper-con" >
  56. <form action="#" method="GET" id="form1" class="fl">
  57. <input type="hidden" name="currPage" id="pageIndex" value="1" />
  58. <%-- <input type="hidden" name="page" id="page" value="${userCPs.number+1}"/> --%>
  59. <input type="hidden" name="type" id="type" value="${type}"/>
  60. <input type="hidden" name="m" id="m" value="${m}"/>
  61. <input type="hidden" name="sortType" id="sortType" value="${sortType}"/>
  62. <input type="hidden" name="is_search" value="false" id="is_search"/>
  63. <div class="tbar clearfix">
  64. <span class="fl">请输入cp名称</span>
  65. <input name="company" onkeyup="this.value=this.value.replace(/^\s+|\s+$/g,'')" value="${company}" ty pe="text" class="fl inptext" />
  66. <span class="fl">请输入排行个数</span>
  67. <input id="size" name="page.size" min="1" max="19" type="number" class="fl inptext" />
  68. <button type="submit" id="sub_control" class="fl inpbtns">查询</button>
  69. </div>
  70. </form>
  71. <table class="table" width="100%">
  72. <thead>
  73. <tr>
  74. <th width="10%">名次序号</th>
  75. <th width="10%">cp名称</th>
  76. <c:if test="${type==1 }">
  77. <th width="10%">总点击量</th>
  78. </c:if>
  79. <c:if test="${type==2 }">
  80. <th width="10%">总付费量(/元)</th>
  81. </c:if>
  82. <c:if test="${type==3}">
  83. <th width="10%">总收藏量</th>
  84. </c:if>
  85. </tr>
  86. </thead>
  87. <tbody>
  88. <c:forEach items="${allUser}" var="userCP" varStatus="status">
  89. <tr>
  90. <td>${(currPage-1)*20+status.index+1}</td>
  91. <td class="company" title="${userCP[1]}">${userCP[1]}</td>
  92. <c:if test="${type==1||type==3 }">
  93. <td>${userCP[2]}</td>
  94. </c:if>
  95. <c:if test="${type==2 }">
  96. <td><fmt:formatNumber type="number" value="${userCP[2]}" pattern="#0.00" m axFractionDigits="2" /></td>
  97. </c:if>
  98. </tr>
  99. </c:forEach>
  100. </tbody>
  101. </table>
  102. <div class="pagesdiv clearfix" >
  103. <div id="page" class="pagination">
  104. <ul>
  105. <c:choose>
  106. <c:when test="${page.currPage>1}">
  107. <li><a href="javascript:firstpage()"><<</a></li>
  108. </c:when>
  109. <c:otherwise> <li><a href="#"><<</a></li>
  110. </c:otherwise>
  111. </c:choose>
  112. <c:choose>
  113. <c:when test="${page.currPage>1}">
  114. <li> <a href="javascript:lastpage()"><</a> </li>
  115. </c:when>
  116. <c:otherwise><li><a href="#"><</a></li>
  117. </c:otherwise>
  118. </c:choose>
  119.  
  120. <%--计算beginend --%>
  121. <c:choose>
  122. <%--如果总页数不足10,那么就把所有的页都显示出来 --%>
  123. <c:when test="${requestScope.countPage<=10}">
  124. <c:set var="begin" value="1" />
  125. <c:set var="end" value="${requestScope.countPage}" />
  126. </c:when>
  127. <c:otherwise>
  128. <%--如果总页数大于10,通过公式计算出beginend --%>
  129. <c:set var="begin" value="${requestScope.currentPage-5}" />
  130. <c:set var="end" value="${requestScope.currentPage+4}" />
  131. <%--头溢出 --%>
  132. <c:if test="${begin<1}">
  133. <c:set var="begin" value="1"></c:set>
  134. <c:set var="end" value="10"></c:set>
  135. </c:if>
  136. <%--尾溢出 --%>
  137. <c:if test="${end>requestScope.countPage}">
  138. <c:set var="begin" value="${requestScope.countPage - 9}"></c:set>
  139. <c:set var="end" value="${requestScope.countPage}"></c:set>
  140. </c:if>
  141. </c:otherwise>
  142. </c:choose>
  143. <%--循环显示页码列表 --%>
  144. <c:forEach var="i" begin="${begin}" end="${end}">
  145. <c:choose>
  146. <c:when test="${i == page.currPage}">
  147. <li class="active"><a id="current" href="javascript:currpage()" >${i}</a></li>
  148. </c:when>
  149. <c:otherwise>
  150. <li><a href="javascript:gotoPage(${i})" id="gotoPage${i}">${i}</a></li>
  151. </c:otherwise>
  152. </c:choose>
  153. </c:forEach>
  154. <c:choose>
  155. <c:when test="${page.currPage + 1<=page.totalPage }">
  156. <li><a href="javascript:nextpage()">></a></li>
  157. </c:when>
  158. <c:otherwise> <li><a href="#">></a></li>
  159. </c:otherwise>
  160. </c:choose>
  161. <c:choose>
  162. <c:when test="${page.currPage + 1<=page.totalPage }">
  163. <li> <a href="javascript:endpage()">>></a> </li>
  164. </c:when>
  165. <c:otherwise><li><a href="#">>></a></li>
  166. </c:otherwise>
  167. </c:choose>
  168. </ul>
  169. </div
  170. </div>
  171. </div>
  172. </div>
  173.  
  174. <!-- <script type="text/javascript" src="js/jquery-1.11.3.min.js" ></script> -->
  175. <script>
  176. $(function(){
  177. $("#sub_control").click(function(){
  178. $("#is_search").attr("value",true);
  179. var data = $("#is_search").val();
  180. $("#form_sub").click();
  181. });
  182. $(".table tbody tr").each(function(i){
  183. if(i%2==0)
  184. {
  185. $(this).addClass("bg-white");
  186. }else{
  187. $(this).addClass("bg-grey");
  188. }
  189. });
  190. })
  191. </script>
  192. </body>
  193. </html>

  

  1. //java代码分页工具类;
  1. package cn.enetic.wodm.entity;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. /**
  6. * 分页
  7. * @author Administrator
  8. *
  9. */
  10. public class PageUtil {
  11. private int totalNum;// 总记录数;
  12. private int totalPage;// 总页数
  13. private int currPage;// 当前页码;
  14. private int pageNum = 20;// 默认页面记录数;
  15. private int startNum = 1;// 开始数;
  16. private int endNum;// 结束数目;
  17. private int startPage;// 开始页;
  18. private int endPage;// 结束页;
  19.  
  20. public PageUtil() {
  21.  
  22. }
  23. public PageUtil(int pageNum,String key,Object value) {
  24. params.put(key, value);
  25. this.pageNum = pageNum;
  26. }
  27. public PageUtil(int pageNum){
  28. this.pageNum = pageNum;
  29. }
  30. private Map<String, Object> params=new HashMap<String, Object>();// 鍙傛暟鍒楄�?
  31.  
  32. public void setTotalPage(int totalNum) {
  33. int num = totalNum % pageNum;
  34. if (num == 0) {
  35. totalPage = totalNum / pageNum;
  36. } else {
  37. totalPage = totalNum / pageNum + 1;
  38. }
  39. }
  40.  
  41. public void initPage(int totalNum) {
  42. this.totalNum = totalNum;
  43. setTotalPage(totalNum);// 璁剧疆鎬婚�?闈㈡�?
  44. startPage = 1;
  45. endPage = totalPage;
  46. if(currPage<=0){
  47. this.currPage=1;
  48. }else if(currPage>=totalPage){
  49. this.currPage=totalPage;
  50. }
  51. startNum = pageNum * currPage - pageNum ;
  52. if(startNum<=0){startNum=0;}
  53. endNum = pageNum * currPage;
  54. if (endNum > totalNum) {
  55. endNum = totalNum;
  56. }
  57.  
  58. }
  59.  
  60. public int getTotalNum() {
  61. return totalNum;
  62. }
  63.  
  64. public void setTotalNum(int totalNum) {
  65. this.totalNum = totalNum;
  66. }
  67.  
  68. public int getCurrPage() {
  69. return currPage;
  70. }
  71.  
  72. public void setCurrPage(int pageNumber) {
  73. if("".equals(pageNumber)){
  74. this.currPage=1;
  75. }else{
  76. this.currPage=pageNumber;
  77. }
  78. }
  79.  
  80. public int getPageNum() {
  81. return pageNum;
  82. }
  83.  
  84. public void setPageNum(int pageNum) {
  85. this.pageNum = pageNum;
  86. }
  87.  
  88. public int getStartNum() {
  89. return startNum;
  90. }
  91.  
  92. public void setStartNum(int startNum) {
  93. this.startNum = startNum;
  94. }
  95.  
  96. public int getEndNum() {
  97. return endNum;
  98. }
  99.  
  100. public void setEndNum(int endNum) {
  101. this.endNum = endNum;
  102. }
  103.  
  104. public int getStartPage() {
  105. return startPage;
  106. }
  107.  
  108. public void setStartPage(int startPage) {
  109. this.startPage = startPage;
  110. }
  111.  
  112. public int getEndPage() {
  113. return endPage;
  114. }
  115.  
  116. public void setEndPage(int endPage) {
  117. this.endPage = endPage;
  118. }
  119.  
  120. public Map<String, Object> getParams() {
  121. return params;
  122. }
  123.  
  124. public void setParams(Map<String, Object> params) {
  125. this.params = params;
  126. }
  127.  
  128. public int getTotalPage() {
  129. return totalPage;
  130. }
  131. }

  

  1. //control层代码; //如果点击了查询按钮,页数清空
    // 分页总数;
  1. int totalnumber=0;
  2. if(("".equals(company)||company==null)&&pageSize!=20){
  3. totalnumber=pageSize;
  4. currPage = 1;
  5. }else{
  6. totalnumber = this.userCPService.getTotalnumber(company);
  7. }
  8.  
  9. PageUtil page = new PageUtil(20);
  10. page.setCurrPage(currPage);
  11. page.initPage(totalnumber);
  12. int startNum = page.getStartNum();
  13. // 获取审核通过的usercp和对应的点击浏览数;
  14. List<Object[]> allUser = this.userCPService.getAllPassUserCPsAndClicks(startNum,pageSize, company);
  15.  
  16. model.addAttribute("allUser", allUser);
  17. model.addAttribute("page", page);
  18. model.addAttribute("company", company);
  19. model.addAttribute("type", type);
  20. model.addAttribute("sortType", sortType);
  21. model.addAttribute("PAGE_SIZE", "20");
  22. model.addAttribute("currPage", currPage);
  23. model.addAttribute("navigateColor", navigateColor);
  24. model.addAttribute("m", m);
  25. return "RankStatistics/cpRankList";
  26. }

  

  

JSP页面分页显示数据的更多相关文章

  1. 转:JSP 分页显示数据 (Oracle)

    JSP 分页显示数据 (Oracle) 标签: Oracle分页JSP分页 2013-11-19 20:40 3598人阅读 评论(1) 收藏 举报  分类: Web(11)  版权声明:本文为博主原 ...

  2. datagrid数据表格当数据为0的时候页面不显示数据

    如下图: datagrid数据表格当数据为0的时候页面不显示数据,为空的表格数据全是0,但是页面无法显示 传递的json数据也是没问题的: 所以实在想不通,为什么easyUI datagrid 不显示 ...

  3. JSP 分页显示数据 (Oracle)

    要实现分页,首先我们要做的就是如何来编写SQL语句,网上也有很多,大家可以搜一下.在这里,我们使用一种比较常用的方式来编写SQL语句.代码如下: ----分页显示 select * from (sel ...

  4. 如何在JSP页面里面显示xml格式的数据

    正常情况下,在jsp页面里的标签里写xml格式的数据,在浏览器里面的页面里显示出来的是乱码. 为什么会显示乱码呢?原来xml标签在jsp里会被解析为浏览器对象,因为xml最开始被设计出来是 为了写网页 ...

  5. springMVC笔记:jsp页面获取后台数据记录列表

    1.读取数据库中的记录List<HashMap<String,String>> attributes; 2.Controller构造Model如下: @RequestMappi ...

  6. ASP.NET(四):ASP.net实现假分页显示数据

    导读:在做数据查询的时候,有的时候查询到的数据有很多.通常呢,我们一般都是去拖动右侧边的滚动条.但是,有了分页后,我们就可以不必是使用滚动条,而直接通过分页查看我们想要的数据.在分页的过程中,有分为真 ...

  7. 多页的TIFF图片在aspx页面分页显示

    一.逻辑实现:将数据库中的二进制TIFF图片读出并分页显示在页面上. 1.显示界面 public FrameDimension MyGuid; ; ; public static MemoryStre ...

  8. repeater 分页显示数据

    表名:ChinaStates 控件:Repeater 查询代码DA: public class ChinaStatesDA { private DataClassesDataContext Conte ...

  9. js 将很长的内容进行页面分页显示

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 图解elasticsearch的_source、_all、store和index

    Elasticsearch中有几个关键属性容易混淆,很多人搞不清楚_source字段里存储的是什么?store属性的true或false和_source字段有什么关系?store属性设置为true和_ ...

  2. Python装饰器执行顺序详解

    探究多个装饰器执行顺序 装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思. 疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会 ...

  3. 注册InstallShield

    安装InstallShield 下载installshield limitededition版本,这个版本是免费的 注册 安装打开后会给一个网址要求进行注册 其中,国籍是必填项但是下拉菜单中没有内容, ...

  4. WebSocket异步通讯,实时返回数据实例

    定义类中的异步方法 using System;using System.Collections.Generic;using System.IO;using System.Linq;using Syst ...

  5. Redis事务概念

    redis事务与监控 Author:SimpleWu GitHub-redis 在redis中它的事务与批处理非常相似 Redis中的事务(transaction)是一组命令的集合.事务同命令一样都是 ...

  6. LeetCode(76): 最小覆盖子串

    Hard! 题目描述: 给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", T = &q ...

  7. cf1110d 线性dp

    很精练的一道题 /* dp[i][j][k]表示值i作为最大值结束的边剩k条,i-1剩下j条的情况的结果 dp[i][k][l]是由dp[i-1][j][k]的j决定的,因为k+l是被留下给后面用的, ...

  8. hdu4370 dijkstra矩阵转单向边最短路矩阵+自环闭环

    /* 矩阵太神奇了Orz,网上的题解大多是spfa,不过我发想dijkstra也能做 把n*n的矩阵看成是单向边距离矩阵就行 */ #include<iostream> #include& ...

  9. bzoj 2721

    题解:首先推一发式子(见csdn https://blog.csdn.net/lleozhang/article/details/83415995) 因为x是整数,所以x的数量显然为能使取得整数的t的 ...

  10. bzoj 4715

    其实我并没有见过原题,只是因为...这被改编成了互测题... 题目中提到了一个序列,这个序列是很重要的,否则这个问题好像是没有合理的时间复杂度解法的 但正因为有了这个序列,这个问题的时间复杂度才让人能 ...