Java 丨 springMVC + Ajax 来进行分页

本贴最后更新于 3007 天前,其中的信息可能已经时移俗易

javaweb 分页技术 实现的方式有很多种,但是小编在网上问了度娘也问了谷老师,得到的答案让小编我不是很满意,so,还是自己写吧!

在小编的博文中,小编不会上传源码,只会把重要的代码和思路供大家参考!

如果只想要实现代码的读者们就不要继续观看此文章。

主题:Javaweb 分页技术实现详解

1、首先我们来解析一下分页实现需要的一些变量有哪些:

**upPage:**上一页

**nextPage:**下一页

**nowPage:**当前的页数

**sumPage:**总页数

**list:**需要显示的数据

**count:**显示的条数

2、在上面我们知道了需要一些什么参数,那么我们怎么获得这些参数呢?

1)我们首先从后台加载一次要显示的数据到页面上

request.setAttribute("list", list);//需要显示在界面的数据

request.setAttribute("count", list.size());//在界面上显示的当前页条数

request.setAttribute("nowPage", nowPage);//现在是多少页

request.setAttribute("sumPage", sumPage);//总页数多少页

2)把第一条中对应的参数在后台传到 view 层 ,显示如下格式:

|  姓名  |  年龄  |  班级  |

|  张山  |  19   |  3 班   |

|  李四  |  20   |  1 班   |

|  王麻子  |  18   |  5 班   |

----3 条------------上一页--1/20--下一页--

参数对应如下:

3 条:${count}

1:${nowPage}

20:${sumPage}

以上就是我们在分页之前做的准备工作,接下来就是 ajax 的事情了

3.设置上一页下一页的点击事件:

/*

  • 下一页
    */
    $("#nextPage").click(function(){
      //alert("----");
      //判断是否不是最后一页
    if(("#pageNum").html().indexOf(("#sumPage").html())!=-1){
    alert("已经是最后一页了");
    return;
    } else {//不为最后一页就查找下一页的内容
    $.post("next.duanniu",
    {
    page:""+$("#pageNum").html(),
    sumPage:""+$("#sumPage").html()
    },
    function(data,status){//返回状态
    $("#att").empty();//设置 tbody 的内容为空
    if(status=="success"){
    var jsonData = JSON.parse(data);
    var jsonStr = "";
    var record = 0;
    $.each(jsonData, function(i, item){
    jsonStr+=""+
    ""+item.id+""+
    ""+item.name +""+
    ""+item.area +""+
    ""+item.empower +""+
    ""+item.belong +""+
    ""+item.state +""+
    ""+
    ""+
    ""+
    " 直推查看"+
    ""+
    " "+
    " 树状图"+
    " "+
    " "+
    ""+
    "";
    record = i+1;
    });
    $("#att").empty().append(jsonStr);
    $("#recordCount").html("共"+record+"条");
    //设置页数
    ("#pageNum").html(""+(parseInt(("#pageNum").html())+1));
    }
    });
    }
    });

/*

  • 上一页
    */
    $("#upPage").click(function(){
    //判断是否不是最后一页
    if(parseInt($("#pageNum").html())-1==0){
    alert("已经是第一页了");
    return;
    } else {//不为最后一页就查找下一页的内容
    $.post("next.duanniu",
    {
    page:""+parseInt($("#pageNum").html())-2,
    sumPage:""+$("#sumPage").html()
    },
    function(data,status){//返回状态
    $("#att").empty();//设置 tbody 的内容为空
    if(status=="success"){
    var jsonData = JSON.parse(data);
    var jsonStr = "";
    var record = 0;
    $.each(jsonData, function(i, item){
    //alert("--"+jsonData);
    jsonStr+=""+
    ""+item.id+""+
    ""+item.name +""+
    ""+item.area +""+
    ""+item.empower +""+
    ""+item.belong +""+
    ""+item.state +""+
    ""+
    ""+
    ""+
    " 直推查看"+
    ""+
    " "+
    " 树状图"+
    " "+
    " "+
    ""+
    "";
    record = i+1;
    });
    $("#att").empty().append(jsonStr);
    $("#recordCount").html("共"+record+"条");
    //设置页数
    ("#pageNum").html(""+(parseInt(("#pageNum").html())-1));
    }
    });
    }
    });

备注:以上由于时间关系,很久的博文内容不完善,还请见谅!希望能帮到读者。

=======祝各位读者生活愉快======

  • 分页
    6 引用 • 51 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3201 引用 • 8216 回帖 • 5 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    371 引用 • 1856 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖 • 1 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 34 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 8 关注
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1395 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    229 引用 • 1432 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    947 引用 • 1460 回帖
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 543 回帖 • 4 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 1 关注
  • Anytype
    3 引用 • 31 回帖 • 23 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 751 回帖 • 1 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 1 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 433 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 12 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 34 关注
  • 安全

    安全永远都不是一个小问题。

    199 引用 • 818 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 654 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • 电影

    这是一个不能说的秘密。

    122 引用 • 608 回帖
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 537 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 704 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 242 回帖