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

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

1 后端返回 JSON 数据

2 前端 Layui 表格展示数据

3 前端表单提交保存到后端

4 完整的异步请求(Ajax)处理

项目结构(标准 SpringBoot):

java 复制代码
springboot-layui-demo/
├── src/main/java/com/demo/
│   ├── controller/
│   │   └── UserController.java  # 接口控制器
│   ├── entity/
│   │   └── User.java            # 实体类
│   └── DemoApplication.java     # 启动类
├── src/main/resources/
│   └── static/
│       └── index.html           # Layui 前端页面
└── pom.xml                     # 依赖

二、后端:SpringBoot 代码

1、实体类

java 复制代码
package com.demo.entity;

public class User {
    private Integer id;
    private String username;
    private Integer age;
    private String email;

    // 无参/有参构造 + getter/setter
    public User() {}
    public User(Integer id, String username, Integer age, String email) {
        this.id = id;
        this.username = username;
        this.age = age;
        this.email = email;
    }

    // getter 和 setter 自行生成
    public Integer getId() {return id;}
    public void setId(Integer id) {this.id = id;}
    public String getUsername() {return username;}
    public void setUsername(String username) {this.username = username;}
    public Integer getAge() {return age;}
    public void setAge(Integer age) {this.age = age;}
    public String getEmail() {return email;}
    public void setEmail(String email) {this.email = email;}
}

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

java 复制代码
package com.demo.controller;

import com.demo.entity.User;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/api/user")
@CrossOrigin  // 跨域支持(前后端分离必备)
public class UserController {

    /**
     * 1. 查询用户列表(Layui表格读取)
     */
    @GetMapping("/list")
    public List<User> getUserList() {
        List<User> list = new ArrayList<>();
        list.add(new User(1, "张三", 20, "zhangsan@qq.com"));
        list.add(new User(2, "李四", 25, "lisi@163.com"));
        list.add(new User(3, "王五", 30, "wangwu@gmail.com"));
        return list;
    }

    /**
     * 2. 保存用户(前端表单提交)
     * @RequestBody 接收 JSON 参数
     */
    @PostMapping("/save")
    public String saveUser(@RequestBody User user) {
        // 实际项目:这里可以存入数据库
        System.out.println("接收前端数据:" + user.getUsername());
        return "保存成功!用户名:" + user.getUsername();
    }
}

3、启动类

java 复制代码
package com.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

三、前端:Layui 页面(index.html)

放在 resources/static/ 下,无需引入本地 Layui,直接用 CDN。

java 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Layui + SpringBoot 案例</title>
    <!-- 引入 Layui CDN -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.9.10/css/layui.css">
    <script src="https://cdn.staticfile.org/layui/2.9.10/layui.js"></script>
</head>
<body>

<div class="layui-container" style="margin-top: 30px;">
    <!-- 表格区域 -->
    <table id="userTable" lay-filter="tableFilter"></table>

    <!-- 表单区域 -->
    <div class="layui-form" style="margin-top: 30px;" lay-filter="formFilter">
        <div class="layui-form-item">
            <label class="layui-form-label">用户名</label>
            <div class="layui-input-block">
                <input type="text" name="username" lay-verify="required" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">年龄</label>
            <div class="layui-input-block">
                <input type="text" name="age" lay-verify="required|number" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">邮箱</label>
            <div class="layui-input-block">
                <input type="text" name="email" lay-verify="required|email" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button class="layui-btn" lay-submit lay-filter="submitBtn">提交保存</button>
            </div>
        </div>
    </div>
</div>

<script>
layui.use(['table', 'form', 'layer'], function(){
    var table = layui.table;
    var form = layui.form;
    var layer = layui.layer;
    var $ = layui.$;

    // ====================== 1. 表格渲染:读取后端返回值 ======================
    table.render({
        elem: '#userTable',
        url: '/api/user/list',  // SpringBoot 接口地址
        cols: [[
            {field: 'id', title: 'ID', width: 80},
            {field: 'username', title: '用户名'},
            {field: 'age', title: '年龄'},
            {field: 'email', title: '邮箱'}
        ]],
        page: false  // 关闭分页
    });

    // ====================== 2. 表单提交:保存到后端 ======================
    form.on('submit(submitBtn)', function(data){
        // data.field 是表单数据
        $.ajax({
            url: '/api/user/save',
            type: 'POST',
            contentType: 'application/json',  // 提交 JSON
            data: JSON.stringify(data.field), // 转 JSON 字符串
            success: function(res){
                // res 是后端返回的结果
                layer.msg(res);  // 弹出提示
            },
            error: function(){
                layer.msg('请求失败');
            }
        });
        return false; // 阻止表单默认刷新
    });
});
</script>
</body>
</html>

四、运行测试

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 即可解决
相关推荐
liangshanbo12153 分钟前
前端高级面试题:WebSocket 双向流式通信怎么设计?
前端·websocket·网络协议
可乐鸡翅yeah_11 分钟前
新手梳理:HLS 线上问题,哪些该提给 CDN,哪些该找后端切片服务
开发语言·前端·javascript·vue.js·网络协议·http·m3u8在线
zwd200511 分钟前
Manim arrange 和 arrange_in_grid 用法详解:buff、aligned_edge、rows/cols(0.21.0 实测)
前端·python·edge
Q264336502315 分钟前
【有源码】基于SpringBoot+Vue的博物馆展览与服务一体化平台-java博物馆数字化展品展示与交互平台设计
java·vue.js·spring boot·spring·毕业设计·javaweb·课程设计
小小龙学IT22 分钟前
Go 语言 reflect 反射包深度解析:从 Type/Value 到三大定律与工业实践
前端·golang
小溪学编程31 分钟前
C语言篇:枚举类型
java·c语言·前端
xingpanvip34 分钟前
星盘接口开发文档:推算星座接口指南
前端·php
Da Da 泓38 分钟前
HTML浅浅入门
前端·html
এ慕ོ冬℘゜40 分钟前
es6基础
前端·javascript·es6
熊猫钓鱼>_>1 小时前
从2D平铺到3D沉浸:我用HarmonyOS 7端侧AI做了一个全程数据不出设备的空间化私密相册
前端·人工智能·3d·华为·华为云·harmonyos·鸿蒙