JSP页面分页显示数据

2023-11-14

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

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<html>
     <head>
           <meta charset="UTF-8">
           <title></title>
           <script src="${ctx}/js/common/common.js" type="text/javascript"></script>
           <script src="${ctx}/js/page/page.js" type="text/javascript"></script>
           <script type="text/javascript">
           
              function firstpage(){
                     $("#pageIndex").val(${page.startPage});
                     $("#form1").submit();
                }
                function lastpage(){
                     $("#pageIndex").val(${page.currPage-1});
                     $("#form1").submit();
                }
                function currpage(){
                     $("#pageIndex").val(${page.currPage});
                     $("#form1").submit();
                }
                function gotoPage(i){
                     var pageNo=$("#gotoPage"+i+"").text();
                     $("#pageIndex").val(pageNo);
                     $("#form1").submit();
                }
                function nextpage(){
                     $("#pageIndex").val(${page.currPage+1});
                     $("#form1").submit();
                }
                function endpage(){
                     $("#pageIndex").val(${page.totalPage});
                     $("#form1").submit();
                }
           
//多文本省略号显示
$(function(){
     $(".company").each(function(){
     var maxwidth=15;
     if($(this).text().length>maxwidth){
     $(this).text($(this).text().substring(0,maxwidth));
     $(this).html($(this).html()+'…');
     }
     });
     })
</script>
     </head>
     <body class="bglightgray"> 
           <div class="div-wrapper" >
                <div class="div-wrapper-con" >
                     <form action="#" method="GET" id="form1" class="fl">
                     <input type="hidden" name="currPage" id="pageIndex" value="1" />
                     <%-- <input type="hidden" name="page" id="page" value="${userCPs.number+1}"/> --%>
                     <input type="hidden" name="type" id="type" value="${type}"/>
                     <input type="hidden" name="m" id="m" value="${m}"/>
                <input type="hidden" name="sortType" id="sortType" value="${sortType}"/>
                <input type="hidden" name="is_search" value="false" id="is_search"/>
                           <div class="tbar clearfix">
                                <span class="fl">请输入cp名称</span>
                                <input name="company" οnkeyup="this.value=this.value.replace(/^\s+|\s+$/g,'')" value="${company}" ty                                pe="text" class="fl inptext" />
                                <span class="fl">请输入排行个数</span>
                                <input id="size" name="page.size" min="1" max="19" type="number" class="fl inptext" />
                                <button  type="submit" id="sub_control" class="fl inpbtns">查询</button>
                           </div>
                     </form>
                     <table class="table"  width="100%">
                           <thead>
                                <tr>
                                     <th width="10%">名次序号</th>
                                     <th width="10%">cp名称</th>
                                     <c:if test="${type==1 }">
                                     <th width="10%">总点击量</th>
                                     </c:if>    
                                     <c:if test="${type==2 }">
                                     <th width="10%">总付费量(/元)</th>
                                     </c:if>    
                                     <c:if test="${type==3}">
                                     <th width="10%">总收藏量</th>
                                     </c:if>                                   
                                </tr>
                           </thead>
                           <tbody>
                                <c:forEach items="${allUser}" var="userCP" varStatus="status">                                
                                                     <tr>
                                                          <td>${(currPage-1)*20+status.index+1}</td>
                                                           <td class="company" title="${userCP[1]}">${userCP[1]}</td>                                                                                                
                                                           <c:if test="${type==1||type==3 }">
                                                          <td>${userCP[2]}</td>
                                                          </c:if>
                                                           <c:if test="${type==2 }">
                                                          <td><fmt:formatNumber type="number" value="${userCP[2]}" pattern="#0.00" m                                                          axFractionDigits="2" /></td>
                                                          </c:if>
                                                     </tr>
                                                </c:forEach>
                           </tbody>
                     </table>
                     <div class="pagesdiv clearfix" >
                           <div id="page" class="pagination">
                       <ul>
                            <c:choose>
                                        <c:when test="${page.currPage>1}">
                                           <li><a href="javascript:firstpage()"><<</a></li>
                                           </c:when>
                                           <c:otherwise> <li><a href="#"><<</a></li>
                                        </c:otherwise>
                                   </c:choose>
                                   <c:choose>
                                           <c:when test="${page.currPage>1}">
                                           <li> <a href="javascript:lastpage()"><</a> </li>
                                           </c:when>
                                           <c:otherwise><li><a href="#"><</a></li>
                                        </c:otherwise>
                                     </c:choose>
                          
                                 <%--计算begin和end --%> 
                                   <c:choose> 
                                       <%--如果总页数不足10,那么就把所有的页都显示出来 --%> 
                                       <c:when test="${requestScope.countPage<=10}"> 
                                           <c:set var="begin" value="1" /> 
                                           <c:set var="end" value="${requestScope.countPage}" /> 
                                       </c:when> 
                                       <c:otherwise> 
                                           <%--如果总页数大于10,通过公式计算出begin和end --%> 
                                           <c:set var="begin" value="${requestScope.currentPage-5}" /> 
                                           <c:set var="end" value="${requestScope.currentPage+4}" /> 
                                           <%--头溢出 --%> 
                                           <c:if test="${begin<1}"> 
                                               <c:set var="begin" value="1"></c:set> 
                                               <c:set var="end" value="10"></c:set> 
                                           </c:if> 
                                           <%--尾溢出 --%> 
                                           <c:if test="${end>requestScope.countPage}"> 
                                               <c:set var="begin" value="${requestScope.countPage - 9}"></c:set> 
                                               <c:set var="end" value="${requestScope.countPage}"></c:set> 
                                           </c:if> 
                                       </c:otherwise> 
                                   </c:choose> 
                                   <%--循环显示页码列表 --%> 
                            <c:forEach var="i" begin="${begin}" end="${end}">
                                       <c:choose>
                                           <c:when test="${i == page.currPage}">
                                               <li class="active"><a id="current" href="javascript:currpage()" >${i}</a></li>
                                           </c:when>
                                           <c:otherwise>
                                              <li><a href="javascript:gotoPage(${i})" id="gotoPage${i}">${i}</a></li>
                                           </c:otherwise>
                                       </c:choose>
                                   </c:forEach>
                                    <c:choose>
                                        <c:when test="${page.currPage + 1<=page.totalPage }">
                                           <li><a href="javascript:nextpage()">></a></li>
                                           </c:when>
                                           <c:otherwise> <li><a href="#">></a></li>
                                        </c:otherwise>
                                   </c:choose>
                                   <c:choose>
                                           <c:when test="${page.currPage + 1<=page.totalPage }">
                                           <li> <a href="javascript:endpage()">>></a> </li>
                                           </c:when>
                                           <c:otherwise><li><a href="#">>></a></li>
                                        </c:otherwise>
                                     </c:choose>
                                </ul>
                           </div
                     </div>
                </div>
           </div>
           
           <!-- <script type="text/javascript" src="js/jquery-1.11.3.min.js" ></script> -->
           <script>
                $(function(){
                     $("#sub_control").click(function(){
                           $("#is_search").attr("value",true);
                           var data = $("#is_search").val();
                           $("#form_sub").click();
                     });
                     $(".table tbody tr").each(function(i){
                           if(i%2==0)
                           {
                                $(this).addClass("bg-white");
                           }else{
                                $(this).addClass("bg-grey");
                           }
                     });
                })
           </script>
     </body>
</html>
//java代码分页工具类;
package cn.enetic.wodm.entity;

import java.util.HashMap;
import java.util.Map;
/**
 * 分页
 * @author Administrator
 *
 */
public class PageUtil {
    private int totalNum;// 总记录数;
    private int totalPage;// 总页数
    private int currPage;// 当前页码;
    private int pageNum = 20;// 默认页面记录数;
    private int startNum = 1;// 开始数;
    private int endNum;// 结束数目;
    private int startPage;// 开始页;
    private int endPage;// 结束页;

    public PageUtil() {

    }
    public PageUtil(int pageNum,String key,Object value) {
        params.put(key, value);
        this.pageNum = pageNum;
    }
    public PageUtil(int pageNum){
        this.pageNum = pageNum;
    }
    private Map<String, Object> params=new HashMap<String, Object>();// 鍙傛暟鍒楄�?

    public void setTotalPage(int totalNum) {
        int num = totalNum % pageNum;
        if (num == 0) {
            totalPage = totalNum / pageNum;
        } else {
            totalPage = totalNum / pageNum + 1;
        }
    }

    public void initPage(int totalNum) {
        this.totalNum = totalNum;
        setTotalPage(totalNum);// 璁剧疆鎬婚�?闈㈡�?
        startPage = 1;
        endPage = totalPage;
        if(currPage<=0){
            this.currPage=1;
        }else if(currPage>=totalPage){
            this.currPage=totalPage;
        }
        startNum = pageNum * currPage - pageNum ;
        if(startNum<=0){startNum=0;}
        endNum = pageNum * currPage;
        if (endNum > totalNum) {
            endNum = totalNum;
        }

    }

    public int getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(int totalNum) {
        this.totalNum = totalNum;
    }

    public int getCurrPage() {
        return currPage;
    }

    public void setCurrPage(int pageNumber) {
        if("".equals(pageNumber)){
            this.currPage=1;
        }else{
            this.currPage=pageNumber;
        }
    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public int getStartNum() {
        return startNum;
    }

    public void setStartNum(int startNum) {
        this.startNum = startNum;
    }

    public int getEndNum() {
        return endNum;
    }

    public void setEndNum(int endNum) {
        this.endNum = endNum;
    }

    public int getStartPage() {
        return startPage;
    }

    public void setStartPage(int startPage) {
        this.startPage = startPage;
    }

    public int getEndPage() {
        return endPage;
    }

    public void setEndPage(int endPage) {
        this.endPage = endPage;
    }

    public Map<String, Object> getParams() {
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    public int getTotalPage() {
        return totalPage;
    }
}
//control层代码;
//如果点击了查询按钮,页数清空
                     // 分页总数;
                     int totalnumber=0;
                     if(("".equals(company)||company==null)&&pageSize!=20){                
                            totalnumber=pageSize;
                            currPage = 1;
                           }else{
                            totalnumber = this.userCPService.getTotalnumber(company);
                           }
                           
                           PageUtil page = new PageUtil(20);
                           page.setCurrPage(currPage);
                           page.initPage(totalnumber);
                           int startNum = page.getStartNum();
                           // 获取审核通过的usercp和对应的点击浏览数;
                           List<Object[]> allUser = this.userCPService.getAllPassUserCPsAndClicks(startNum,pageSize, company);
                           
                           model.addAttribute("allUser", allUser);
                           model.addAttribute("page", page);
                           model.addAttribute("company", company);
                           model.addAttribute("type", type);
                           model.addAttribute("sortType", sortType);
                           model.addAttribute("PAGE_SIZE", "20");
                           model.addAttribute("currPage", currPage);
                           model.addAttribute("navigateColor", navigateColor);
                           model.addAttribute("m", m);
                                return "RankStatistics/cpRankList";    
                     }
 



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • SQLSever创建表和约束

    表的基本概念 概念 由数据按一定的顺序和格式构成的数据集合 是数据库的主要对象 每一行代表一个记录 每一列代表一个属性 设计表 创建前考虑如下特征 表中要包含数据类型 表中列数 每一列中的数据类型 那些列允许空值 是否使用以及何时约束 那些
  • eclipse实现前后端交互的初步操作

    首先new创建 选择Other 在最下面 然后 然后next起名 再两次next后进行选择 创建完成如下 所有的前端代码写在WebContent里面 所有的Java代码写在Java Resource里的src里面 创建html文件 在win
  • CSS之背景样式及边框样式

    1 背景样式 常用属性 background color 背景颜色 background image 背景图片 background repeat 背景图片的平铺方式 background position 背景图片的位置 backgrou
  • 加密、解密、加签、验签专题

    首先明确几个名词 加密 发送方利用接收方的公钥对要发送的明文进行加密 解密 接受方利用自己的私钥进行解密 公钥和私钥配对的 用公钥加密的文件 只有对应的私钥才能解密 当然也可以反过来 用私钥加密 用对应的公钥进行解密 签名 发送方用一个哈希
  • 智能家居系统中网关与服务器如何连接?

    原文点击打开链接 在新型智能家居系统中 家庭网关将取代PC机作为家庭控制中心 传统客户端 服务器模式不能保持家庭网关与远程服务器实时连接 基于百万级的家庭网关与服务器保持长连接的目的 采用主从服务器框架进行负载均衡 心跳机制保障网关与服务器
  • 容器安全最佳实践入门

    作者 Cloudberry 译者 王者 策划 万佳 保证容器安全是一项复杂的任务 这个问题域很广 面对大量的检查清单和最佳实践 你很难确定采用哪个解决方案 所以 如果你要实现容器安全策略 应该从哪里开始呢 我建议从最基本的开始 理解容器安全
  • v-model.number的坑,自动清除小数点后的0

  • Android7.0 获取蓝牙设备电量

    参考http blog csdn net jcxxxxx55 article details 52847291 locationNum 4 fps 1 1 修改 HeadsetStateMachine packages apps Bluet
  • 有趣的数据结构算法16——线索二叉树的构建

    有趣的数据结构算法16 线索二叉树的构建 什么是线索二叉树 线索二叉树的实现形式 线索二叉树的代码实现 线索二叉树的初始化 线索的串联 全部实现代码 GITHUB下载连接 深度遍历不仅仅有递归的方法噢 还有通过建立线索二叉树进行遍历的方法
  • 在pycharm上安装Tensorflow1.13 win10

    Tensorflow安装教程 清明回家就折腾了几天的tensorflow 我是使用pycharm安装的 所以下面基于pycharm进行安装 tensorflow1 13 0基础配置 python3 7 cuda10 0 适合cuda的cuD
  • 《数字图像处理》笔记—灰度变换

    3 1 背景 本章主要讲解空间域的图像处理方法 直接对图像中的像素进行操作 主要包括 灰度变换和空间滤波 灰度变换是对图像的各个像素进行操作 空间滤波是对每个像素的邻域进行操作 3 1 1 灰度变换和空间滤波基础 空间域处理可以表达为 邻域
  • 漫画:排序算法系列 第一讲(利用插入算法思想解题)

    在本系列中 将为大家讲解排序算法相关内容 同时 由于网上排序相关的教程太多了 我会尽可能的讲解一些不一样的内容 而不是按照 排序讲解 标准Titile 什么 十大排序算法 经典排序算法 排序算法必知必会 之类的一个一个来进行讲解 所以 如果
  • JDK1.8下载步骤

    JDK概述 JDK是 Java 语言的软件开发工具包 主要用于移动设备 嵌入式设备上的java应用程序 JDK是整个java开发的核心 它包含了 JAVA开发工具 jdk bin 基础开发库 jdk jre lib rt jar 基础开发库
  • windows11测评

    微软在今年6月正式发布了新一代Windows 11操作系统 作为微软近6年来首次推出新的Windows操作系统 Windows 11带来了众多新功能和新特性 例如全新应用商店 新版右键菜单 分离式通知中心 优化的设置面板以及UI界面的重新设
  • 汽车零配件行业MES规划与落地

    汽车零部件行业作为汽车整车行业的上游 是汽车工业发展的基础 汽车制造业的竞争很大程度上也是其零部件产业水平的竞争 近年来 国内汽车零部件企业通过技术引进 合资合作 自主发展 多元化投资等相关措施 在装备水平 制造技术 产品质量 管理水平等方
  • nextcloud 安装教程 windows 中nextcloud 安装方法

    一 准备工作 1 windows server 中可以用WM 虚拟机 再安装docker 虚拟机磁盘只要20G就够了 云盘数据可以映射到其它盘中 2 在虚拟机中设置好共享文件夹名称为nextcloud 用来存放云盘数据 所以请选一个大一点的
  • 【C++】3、排序算法 C++ 实现

    文章目录 排序算法程序 1 冒泡排序 2 直接插入排序 3 希尔排序 4 快速排序 5 总结 排序算法程序 1 冒泡排序 通过对相邻数据的元素进行交换 逐步将待排序序列排成有序序列的过程 如升序排列 扫描整个待排序序列 非整个序列 不扫描已
  • 关系数据库中表示层级结构

    Managing Hierarchical Data in MySQL What are the options for storing hierarchical data in a relational database Trees in
  • 微信小程序地图导航源码、地图导航小程序源码

    最近研究了微信小程序地图功能 编写了地图导航功能的Demo 文章尾部附有下载地址 1 用户定位功能 用户同意小程序获取位置权限 并定位用户当前位置 2 选择目的地 并开始自动导航功能 2 选择交通工具 显示里程数 及显示相似目的地功能 地图
  • JSP页面分页显示数据

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