讲师中心 微信公众号
AI工具推荐 视频效率加速

layui分页怎么在java springboot里对接

胖雪酱_4244

胖雪酱_4244

发布时间:2026-09-17 10:03:17

|

955人浏览过

|

来源于php中文网

原创

layui laypage需手动对接后端接口,Spring Boot需提供符合{code:0,msg:"",count:总条数,data:列表}结构的JSON,接收page和limit参数,用getTotal()设count,并在jump回调中重新render更新总数。

layui分页怎么在java springboot里对接

layui 的 laypage 本身不直接对接后端,得靠你写好接口返回标准 JSON

layui 的分页组件 laypage 是纯前端控制,它不会自动调用 Java 接口,也不会解析 Spring Boot 的 Model 或视图。你必须自己用 $.ajax 或 fetch 请求后端分页接口,再把返回的总条数、数据列表传给 laypage.render()。常见错误是以为只要在 Thymeleaf 模板里写个 th:object="${page}" 就能联动 —— 不行,laypage 完全不认服务端模板变量。

关键点:Spring Boot 接口要返回符合 layui 要求的 JSON 结构,比如:

{
  "code": 0,
  "msg": "",
  "count": 1234,
  "data": [...]
}

其中 count 是总记录数(不是当前页数量),data 是当前页的数据数组。这个结构不能改,否则 laypage 的 jump 回调拿不到总数,就无法渲染页码。

Spring Boot Controller 怎么写才能被 laypage 正确调用

接口必须接收两个关键参数:page(当前页码)和 limit(每页条数),这是 laypage 默认传的字段名。别用 pageNum/pageSize,除非你手动改 request 配置。

立即学习“Java免费学习笔记(深入)”;

  • 用 @RequestParam(defaultValue = "1") Integer page 和 @RequestParam(defaultValue = "10") Integer limit 接收
  • 用 MyBatis-Plus 的 IPage 或原生 PageHelper.startPage(page, limit) 做物理分页
  • 查完后,构造响应对象:确保有 count 字段(查一次总数,不要用 list.size())
  • 返回类型统一用 Map<String, Object> 或自定义 VO,但 key 必须是 code、msg、count、data

示例 Controller 片段:

OpenJDK 24 Windows x64
OpenJDK 24 Windows x64

OpenJDK 24 Windows x64 官方参考实现(24+36),适合 Windows 环境进行 Java 开发、编译、运行和版本兼容性验证。

下载
@GetMapping("/api/users")
public Map<String, Object> listUsers(
    @RequestParam(defaultValue = "1") Integer page,
    @RequestParam(defaultValue = "10") Integer limit) {
    IPage<User> pager = new Page<>(page, limit);
    IPage<User> result = userService.page(pager);
    Map<String, Object> res = new HashMap<>();
    res.put("code", 0);
    res.put("msg", "");
    res.put("count", result.getTotal()); // 注意:是 getTotal(),不是 getRecords().size()
    res.put("data", result.getRecords());
    return res;
}

前端 JS 里怎么用 laypage.render() 触发真实请求

laypage.render() 的 jump 回调才是发起 AJAX 的地方,不是页面一加载就查第一页(除非你主动调一次)。很多人漏掉这步,导致点击页码没反应。

  • elem 填容器 ID,比如 "#demo";count 先填个占位值(如 0),等第一次请求回来再重绘
  • jump 函数里判断 curr 是否为 undefined,如果是,说明是初始化,需手动查第一页
  • 每次请求成功后,用返回的 res.count 调用 laypage.render({ ..., count: res.count }) 更新总页数
  • 务必把 data 渲染到表格或列表里,laypage 不做这事

简短示例:

laypage.render({
  elem: 'demo',
  count: 0,
  limit: 10,
  curr: 1,
  jump: function(obj, first) {
    $.get('/api/users', {
      page: obj.curr,
      limit: obj.limit
    }, function(res) {
      // 渲染表格(你自己写)
      $('#user-list').html(template(res.data));
      // 更新 laypage 总数(关键!否则翻页异常)
      if (!first) {
        laypage.render({
          elem: 'demo',
          count: res.count,
          limit: obj.limit,
          curr: obj.curr
        });
      }
    });
  }
});

容易被忽略的细节:跨域、JSON 格式、分页参数校验

开发时本地前后端分离(Vue/HTML 直接开文件 or webpack serve)会触发跨域,Spring Boot 得加 @CrossOrigin 或全局配置,否则请求直接被浏览器拦截,控制台连 404 都看不到。

另外几个硬坑:

  • count 必须是 long 类型数字,传字符串(如 "123")会导致页码计算错乱
  • Spring Boot 默认用 Jackson,确保 Long getTotal() 被正确序列化,避免因 getter 命名或 Lombok 导致字段不输出
  • 前端传 page=0 或负数?后端要校验并转成 1,否则 MyBatis-Plus 可能查出全部数据
  • 如果用了 Spring Security,检查是否放行了分页接口路径(/api/**),否则返回 302 或 401

最麻烦的其实是第一次请求后的 laypage.render() 重绘逻辑 —— 多数人卡在这儿,反复点页码没反应,其实只是忘了用新 count 再 render 一次。

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2543

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

5503

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6510

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

6158

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

883

2024.05.22

java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

10777

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

7902

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

6872

2023.07.31

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

60

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第十三期_前端开发
第十三期_前端开发

共98课时 | 17.8万人学习

第十二期_前端开发
第十二期_前端开发

共98课时 | 20.8万人学习

周末班(第一期)_前端开发
周末班(第一期)_前端开发

共83课时 | 15万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn