Java 丨 springMVC + Ajax 来进行分页

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

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(KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲pageNum").html(…("#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+"条");
    //设置页数
    KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲pageNum").html(…("#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+"条");
    //设置页数
    KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲pageNum").html(…("#pageNum").html())-1));
    }
    });
    }
    });

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

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

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

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

    693 引用 • 537 回帖 • 1 关注
  • Java

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

    3201 引用 • 8216 回帖 • 3 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 3 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    64 引用 • 134 回帖 • 735 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    13 引用 • 59 回帖 • 5 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 485 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 3 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 398 关注
  • MySQL

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

    693 引用 • 537 回帖 • 1 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖
  • Word
    13 引用 • 41 回帖 • 1 关注
  • 黑曜石

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

    A second brain, for you, forever.

    24 引用 • 242 回帖
  • RemNote
    2 引用 • 16 回帖 • 14 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 28 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    557 引用 • 675 回帖 • 1 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 365 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖 • 8 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 553 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 1 关注
  • sts
    2 引用 • 2 回帖 • 232 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 7 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 542 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    97 引用 • 903 回帖
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 2 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    336 引用 • 324 回帖