Layui结合springboot读取返回值,前端展示简单示例

作者:一个心烑日期:2026/5/7

在这里插入图片描述

一、SpringBoot 后端接口 + Layui 前端页面实现

1 后端返回 JSON 数据
2 前端 Layui 表格展示数据
3 前端表单提交保存到后端
4 完整的异步请求(Ajax)处理

项目结构(标准 SpringBoot):

1springboot-layui-demo/
2├── src/main/java/com/demo/
3   ├── controller/
4      └── UserController.java  # 接口控制器
5   ├── entity/
6      └── User.java            # 实体类
7   └── DemoApplication.java     # 启动类
8├── src/main/resources/
9   └── static/
10       └── index.html           # Layui 前端页面
11└── pom.xml                     # 依赖
12

二、后端:SpringBoot 代码

1、实体类

1package com.demo.entity;
2
3public class User {
4    private Integer id;
5    private String username;
6    private Integer age;
7    private String email;
8
9    // 无参/有参构造 + getter/setter
10    public User() {}
11    public User(Integer id, String username, Integer age, String email) {
12        this.id = id;
13        this.username = username;
14        this.age = age;
15        this.email = email;
16    }
17
18    // getter  setter 自行生成
19    public Integer getId() {return id;}
20    public void setId(Integer id) {this.id = id;}
21    public String getUsername() {return username;}
22    public void setUsername(String username) {this.username = username;}
23    public Integer getAge() {return age;}
24    public void setAge(Integer age) {this.age = age;}
25    public String getEmail() {return email;}
26    public void setEmail(String email) {this.email = email;}
27}
28

2、控制器 UserController.java提供两个核心接口

1package com.demo.controller;
2
3import com.demo.entity.User;
4import org.springframework.web.bind.annotation.*;
5import java.util.ArrayList;
6import java.util.List;
7
8@RestController
9@RequestMapping("/api/user")
10@CrossOrigin  // 跨域支持(前后端分离必备)
11public class UserController {
12
13    /**
14     * 1. 查询用户列表(Layui表格读取)
15     */
16    @GetMapping("/list")
17    public List<User> getUserList() {
18        List<User> list = new ArrayList<>();
19        list.add(new User(1, "张三", 20, "zhangsan@qq.com"));
20        list.add(new User(2, "李四", 25, "lisi@163.com"));
21        list.add(new User(3, "王五", 30, "wangwu@gmail.com"));
22        return list;
23    }
24
25    /**
26     * 2. 保存用户(前端表单提交)
27     * @RequestBody 接收 JSON 参数
28     */
29    @PostMapping("/save")
30    public String saveUser(@RequestBody User user) {
31        // 实际项目:这里可以存入数据库
32        System.out.println("接收前端数据:" + user.getUsername());
33        return "保存成功!用户名:" + user.getUsername();
34    }
35}
36

3、启动类

1package com.demo;
2
3import org.springframework.boot.SpringApplication;
4import org.springframework.boot.autoconfigure.SpringBootApplication;
5
6@SpringBootApplication
7public class DemoApplication {
8    public static void main(String[] args) {
9        SpringApplication.run(DemoApplication.class, args);
10    }
11}
12

三、前端:Layui 页面(index.html)
放在 resources/static/ 下,无需引入本地 Layui,直接用 CDN。

1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4    <meta charset="UTF-8">
5    <title>Layui + SpringBoot 案例</title>
6    <!-- 引入 Layui CDN -->
7    <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.9.10/css/layui.css">
8    <script src="https://cdn.staticfile.org/layui/2.9.10/layui.js"></script>
9</head>
10<body>
11
12<div class="layui-container" style="margin-top: 30px;">
13    <!-- 表格区域 -->
14    <table id="userTable" lay-filter="tableFilter"></table>
15
16    <!-- 表单区域 -->
17    <div class="layui-form" style="margin-top: 30px;" lay-filter="formFilter">
18        <div class="layui-form-item">
19            <label class="layui-form-label">用户名</label>
20            <div class="layui-input-block">
21                <input type="text" name="username" lay-verify="required" class="layui-input">
22            </div>
23        </div>
24        <div class="layui-form-item">
25            <label class="layui-form-label">年龄</label>
26            <div class="layui-input-block">
27                <input type="text" name="age" lay-verify="required|number" class="layui-input">
28            </div>
29        </div>
30        <div class="layui-form-item">
31            <label class="layui-form-label">邮箱</label>
32            <div class="layui-input-block">
33                <input type="text" name="email" lay-verify="required|email" class="layui-input">
34            </div>
35        </div>
36        <div class="layui-form-item">
37            <div class="layui-input-block">
38                <button class="layui-btn" lay-submit lay-filter="submitBtn">提交保存</button>
39            </div>
40        </div>
41    </div>
42</div>
43
44<script>
45layui.use(['table', 'form', 'layer'], function(){
46    var table = layui.table;
47    var form = layui.form;
48    var layer = layui.layer;
49    var $ = layui.$;
50
51    // ====================== 1. 表格渲染:读取后端返回值 ======================
52    table.render({
53        elem: '#userTable',
54        url: '/api/user/list',  // SpringBoot 接口地址
55        cols: [[
56            {field: 'id', title: 'ID', width: 80},
57            {field: 'username', title: '用户名'},
58            {field: 'age', title: '年龄'},
59            {field: 'email', title: '邮箱'}
60        ]],
61        page: false  // 关闭分页
62    });
63
64    // ====================== 2. 表单提交:保存到后端 ======================
65    form.on('submit(submitBtn)', function(data){
66        // data.field 是表单数据
67        $.ajax({
68            url: '/api/user/save',
69            type: 'POST',
70            contentType: 'application/json',  // 提交 JSON
71            data: JSON.stringify(data.field), //  JSON 字符串
72            success: function(res){
73                // res 是后端返回的结果
74                layer.msg(res);  // 弹出提示
75            },
76            error: function(){
77                layer.msg('请求失败');
78            }
79        });
80        return false; // 阻止表单默认刷新
81    });
82});
83</script>
84</body>
85</html>
86

四、运行测试
1 启动 SpringBoot 项目
2 浏览器访问:http://localhost:8080/index.html
效果:
1 页面自动加载表格 → 读取 /api/user/list 返回的 JSON 并展示
2 填写表单点击提交 → 数据发送到 /api/user/save
3 后端接收并处理 → 前端弹出成功提示

五、核心知识点总结

  1. 前端读取后端返回值
    .使用 table.render({ url: ‘接口地址’ })
    .Layui 自动解析 JSON 数组并渲染表格
  2. 前端保存数据到后端
    .使用 $.ajax 发送 POST 请求
    .contentType: ‘application/json’ 提交 JSON 格式
    .后端用 @RequestBody 接收
  3. 跨域问题
    .后端加 @CrossOrigin 即可解决

Layui结合springboot读取返回值,前端展示简单示例》 是转载文章,点击查看原文


相关推荐


算个账也要开顶配 AI?我让 AI 自己劝我换了个小的
小墨同学boy2026/4/28

其实我自己每个月在 AI 上花的钱不少,Claude、GPT、GLM 都有订阅。但其实有很大一部分预算其实是花在处理生活琐事上的——记账、外卖归类、做一个消费数据分析。这种活差不多每天都得跑一遍,所以token 烧得也不少,尤其是有时候开了深度思考的模型反而更容易给错数据。 后来我才反应过来,手里订阅一个不少,结果我一直在拿 Opus 的钱让它当我的计算器。有点奢侈了,所以我准备切换思路看看有没有节省token的办法。 一、我发现一个反直觉的事 在日常生活当中,我的直觉一直是有钱就上好的贵的效果


2026 年前端工程师面试:一份来自面试官视角的真实复盘
怕浪猫2026/4/19

前言:为什么我要写这篇文章 前两天和一个在高校和企业都面试过不少候选人的"面试官老炮"聊天,他听过太多候选人抱怨面试内容脱离实际、工作用不到。也听过面试官抱怨候选人只会背题、动手能力差。有意思的是,这两拨人的抱怨,往往都对。 今天我想换个视角——不站在候选人角度刷题,也不站在理论派角度讲八股文,而是站在有实际招聘需求、真正要带团队干活的面试官视角,聊聊 2026 年的前端工程师面试,到底在考什么、为什么这么考。 核心结论先行 2026 年的前端面试,考察维度已经发生了结构性变化:


【折腾】windows下小狼毫输入法更新字库
stereohomology2026/4/11

我问DeepSeek如何更新,而不是自己从文档里面找,结果效率很高、回答很全面,直接给出步骤和命令。 作为菜鸟,我用第一种方法: 这个错误提示很明确:你当前所在的目录(即小狼毫的用户文件夹)不是空的,而 git clone 要求目标目录必须是空目录才能执行。 小狼毫默认安装后,用户文件夹里会自带一些基础配置文件(比如 default.custom.yaml、weasel.custom.yaml、luna_pinyin.schema.yaml 等)。直接 git clone 到非空目录就会报这个


吴恩达《LangChain LLM 应用开发精读笔记》8-Document Loading 文档加载
勇气要爆发2026/4/3

大家好,我是飞哥!👋 欢迎来到吴恩达《LangChain:Chat with Your Data》系列课程的第二讲。上一讲我们了解了 RAG 的全流程,今天我们正式开工,攻克第一关:Document Loading (文档加载)。 1. 为什么:Garbage In, Garbage Out 🗑️ 💡 场景锚定 做饭要先买菜洗菜,训练 AI 也是一样。如果你喂给 AI 的数据格式乱七八糟、乱码满天飞,那么 AI 输出的答案肯定也是一塌糊涂。 PDF 里有复杂的表格和页眉页脚。网页里有一堆


CSS 全栈指南:从基础到 2025 新特性
橘子编程2026/3/25

CSS 知识详解 从层叠规则到现代布局,从自定义属性到容器查询,系统梳理 CSS 全栈知识,涵盖 W3C 2025 最新特性,助你写出优雅、高性能的样式代码。 目录 什么是 CSS语法与引入方式层叠与继承选择器优先级CSS 选择器大全伪类与伪元素CSS 盒模型Display 与定位Flexbox 弹性布局Grid 网格布局字体与文本颜色与背景变换与过渡CSS 动画自定义属性(变量)响应式设计现代 CSS 特性最佳实践 一、什么是 CSS CSS(Cascading S


【宇树机器人强化学习】(二):ActorCritic网络和ActorCriticRecurrent网络的python实现与解析
zh路西法2026/3/17

前言 Unitree RL GYM 是一个开源的 基于 Unitree 机器人强化学习(Reinforcement Learning, RL)控制示例项目,用于训练、测试和部署四足机器人控制策略。该仓库支持多种 Unitree 机器人型号,包括 Go2、H1、H1_2 和 G1。仓库地址 本系列将着手解析整个仓库的核心代码与算法实现和训练教程。此系列默认读者拥有一定的强化学习基础和代码基础,故在部分原理和基础代码逻辑不做解释,对强化学习基础感兴趣的读者可以阅读我的入门系列: 第一期


Git Worktree / Worktrunk:并行 AI 开发工作流实战
RickeyBoy2026/3/9

最近在日常开发中尝试了用 Git Worktree (Worktrunk) 配合 Claude Code 进行并行开发,体验下来效果非常好。这篇文章就来分享一下这套工作流的搭建和使用经验,希望能对大家有点帮助~ 欢迎大家点个 star:Github 以及下载我的独立 app: iColors 一、为什么需要 Git Worktree 先说一个日常开发中很常见的场景:你正在开发一个新功能,突然来了一个紧急 bug 需要修复。通常你要么 git stash,要么 git commit 一个半成品


在OrangePi-5 Plus/5 Ultra上实时运行yolo26进行无人机检测,fps超50!
吃素的力2026/3/1

在OrangePi-5 Plus/5 Ultra上使用VideoPipe与YOLO26n实现高性能无人机检测 视频效果展示 RK3588无人机检测 前言 随着低空经济的快速发展,无人机检测已成为安防监控、边境巡逻、关键区域保护等场景中的重要需求。OrangePi 5 Plus和OrangePi 5 Ultra作为瑞芯微RK3588平台的高性能开发板,凭借其强大的NPU算力,成为边缘端AI推理的理想选择。 本文将详细介绍如何基于VideoPipe框架,结合最新的Y


花 200 美刀买“黑盒”?Claude Code 这波更新,把程序员当傻子了吧…
Dcs2026/2/21

有些产品吧,功能再强,只要开始“藏事儿”,程序员的雷达立马就响了: 你到底读了哪个文件?你到底搜了啥?你到底改了啥?——别跟我说“别管细节,反正我很聪明”。哥们,工程不是玄学,是可验证、可追溯、可复盘。 然后,Claude Code 2.1.20 就真把这事做了:把“读取文件路径”和“搜索 pattern”这种最基础的可观测信息,直接干没了。 1)更新前 vs 更新后:从“可审计”变成“随缘”🤡 以前你会看到它读了哪些文件、搜了什么关键词,属于那种一眼就能判断它有没有跑偏的“低噪音透明输出”


为什么 Memo Code 先做 CLI:以及终端输入框到底有多难搞
mCell2026/2/12

同步至个人站点:为什么 Memo Code 先做 CLI:以及终端输入框到底有多难搞 如果你对我的 Code Agent项目感兴趣,可以看这里: Github Repo: Memo Code - Github 站点:Memo Web Site 大概四年前,我刚接触编程。学的是 C 语言,第一个程序当然是 hello world。 很简单,几行就写完。run 一下,弹出来一个 terminal(我已经忘了当时用的是什么:cmd?PowerShell?反正不重要),然后打印了一行: “hell

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客