使用layui快速渲染表格

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 使用layui快速渲染表格

耳闻之不如目见之,目见之不如足践之。一一刘向《说苑》

我们首先准备一个接口,格式如下

# 请求方法为POST,参数格式为:application/json
{"pageNum":1,"pageSize":10}
# 响应格式如下
{
    "msg": "查询成功!",
    "code": 200,
    "data": {
        "records": [],
        "total": 0,
        "size": 10,
        "current": 1,
        "searchCount": true,
        "pages": 1
    },
    "success": true
}

编写Java代码

DTO

package com.ruben.pojo.dto;
import lombok.Data;
/**
 * @ClassName: PageDTO
 * @Description: 我还没有写描述
 * @Date: 2021/1/22 0022 22:51
 * *
 * @author: <achao1441470436@gmail.com>
 * @version: 1.0
 * @since: JDK 1.8
 */
@Data
public class PageDTO {
    /**
     * 页数
     */
    private Integer pageNum;
    /**
     * 当前页数据条数
     */
    private Integer pageSize;
    /**
     * 关键字
     */
    private String keywords;
    /**
     * 编号
     */
    private String id;
}

PO

package com.ruben.pojo.po;/**
 * @ClassName: UserDataObject
 * @Date: 2020/11/21 0021 15:55
 * @Description:
 */
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.io.Serializable;
/**
 * @ClassName: UserPO
 * @Description: 我还没有写描述
 * @Date: 2020/11/21 0021 15:55
 * *
 * @author: <achao1441470436@gmail.com>
 * @version: 1.0
 * @since: JDK 1.8
 */
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class UserPO implements Serializable {
    private static final long serialVersionUID = -1891465370283313432L;
    private Integer id;
    private String username;
    private String password;
}

Controller

@RestController
@RequestMapping("user")
@DependsOn("SpringContextHolder")
public class UserController {
    @Resource
    private UserService userService;
    /**
     * 获取用户列表
     *
     * @return
     */
    @PostMapping("userList")
    public AjaxJson userList(@RequestBody PageDTO pageDTO) {
        IPage<UserPO> page = userService.findList(pageDTO);
        // 过滤密码
        page.setRecords(page.getRecords().stream().peek(userPO -> userPO.setPassword(null)).collect(Collectors.toList()));
        return AjaxJson.success("查询成功!").put("data", page);
    }
}

Service

@Slf4j
@Service
public class UserServiceImpl implements UserService {
    @Resource
    private MpUserMapper mpUserMapper;
    @Override
    public IPage<UserPO> findList(PageDTO pageDTO) {
        return mpUserMapper.selectPage(new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize()), Wrappers.lambdaQuery());
    }
}

然后就可以开始编写前端代码了,这里使用的是layui,非常方便好用,这里就只写一个简单的Demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>table</title>
    <link rel="stylesheet" href="layui/css/layui.css" media="all">
</head>
<body onload="refreshList()">
<div class="layui-container">
    <div class="layui-row">
        <div class="layui-col-md12">
            <button class="layui-btn layui-btn-normal layui-btn-fluid" onclick="refreshList()">刷新</button>
        </div>
    </div>
    <div class="layui-row">
        <div class="layui-col-md12">
            <table id="demo" lay-filter="test"></table>
        </div>
    </div>
</div>
<script type="application/javascript" src="js/index.js"></script>
<script src="layui/layui.all.js"></script>
<script>
    function refreshList() {
        let table = layui.table;
        //第一个实例
        table.render({
            elem: '#demo',
            method: 'post',     // 接口http请求类型,默认:get
            url: '/user/userList', //数据接口
            contentType: 'application/json',    // 发送到服务端的内容编码类型
            page: true,         //开启分页
            parseData: function (res) { //res 即为原始返回的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": res.data.total, //解析数据长度
                    "data": res.data.records //解析数据列表
                };
            },
            request: {
                pageName: 'pageNum' //页码的参数名称,默认:page
                , limitName: 'pageSize' //每页数据量的参数名,默认:limit
            },
            response: {
                "statusCode": 200    //规定成功的状态码,默认:0
            },
            cols: [[ //表头
                {field: 'id', title: 'ID', fixed: 'left'}
                , {field: 'username', title: '用户名'}
            ]]
        });
    }
</script>
</body>
</html>
相关文章
|
4月前
|
SQL 安全 算法
网络安全与信息安全的全面解析:应对漏洞、加密技术及提升安全意识的策略
本文深入探讨了网络安全和信息安全的重要性,详细分析了常见的网络安全漏洞以及其利用方式,介绍了当前流行的加密技术及其应用,并强调了培养良好安全意识的必要性。通过综合运用这些策略,可以有效提升个人和企业的网络安全防护水平。
|
9月前
|
数据格式
Layui中table数据表格使用方法渲染 返回的数据不符合规范,正确的成功状态码应为:“code“: 0异常处理
Layui中table数据表格使用方法渲染 返回的数据不符合规范,正确的成功状态码应为:“code“: 0异常处理
1015 0
|
9月前
|
机器学习/深度学习 存储 人工智能
云计算平台选择之路:AWS、Azure和Google Cloud的比较与抉择
在当今数字化时代,云计算平台扮演着企业转型和创新的关键角色。本文将对三大主流云计算平台——AWS、Azure和Google Cloud进行比较分析,为读者提供选择指南。我们将从性能、可靠性、生态系统、服务和定价等方面综合评估,以帮助读者做出最适合他们业务需求的决策。
787 0
|
存储 云安全 运维
阿里云认证介绍 - 线上考试报名指南(ACA/ACP/ACE)
阿里云认证介绍 - 线上考试报名指南(ACA/ACP/ACE)
|
1月前
|
人工智能 JSON 安全
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
DeepSeek Engineer 是一款开源AI编程助手,通过命令行界面处理用户对话并生成结构化JSON,支持文件操作和代码生成。
768 6
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
|
9月前
|
存储 设计模式 测试技术
了解三层架构:表示层、业务逻辑层、数据访问层
了解三层架构:表示层、业务逻辑层、数据访问层
2616 0
|
9月前
|
数据采集 缓存
访问网站的速度变慢的原因有什么,有哪些解决方法?
随着互联网技术和科技的发展,在上网的时候使用代理ip的使用人数也越来越多,因为业务的需求需要使用http动态代理ip的应用范围越来越多,那么访问网站的速度变慢的原因有什么,有哪些解决方法? 接下来小编就给大家介绍一下
262 2
|
7月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(八十九)(3)
Transformers 4.37 中文文档(八十九)
39 2
|
9月前
|
自然语言处理 索引
技术写作最佳实践与策略指南
作为一名技术写作者,遵守既定的最佳实践有助于确保您的工作的一致性、清晰性和整体质量。一些常见的最佳实践包括: 始终考虑受众: 牢记用户视角编写内容。确保技术术语、语言和复杂程度与您的目标读者相匹配。 逻辑地组织内容: 将材料分为章节、子章节、项目符号列表和表格。使用标题帮助读者浏览内容。 必要时使用图表和图像: 视觉辅助工具通常可以提高对复杂概念或过程的理解。 写出清晰简洁的句子: 避免使用读者可能不明白的模糊信息和术语。始终追求可读性。 编辑、编辑、编辑: 校对您的工作,纠正语法和拼写错误,并确保信息准确且最新。 遵循这些最佳实践可以提高您的技术写作效率,并确保您的受众能够轻松理
938 0
|
9月前
|
传感器 边缘计算 人工智能
探索未来科技融合之路:人工智能、物联网与边缘计算的前沿技术趋势
随着科技的迅猛发展,人工智能、物联网和边缘计算等前沿技术正逐渐渗透到我们的生活中。本文将深入探讨这些技术的最新趋势,展望它们在未来的潜在应用,以及如何融合发挥更大的作用。
356 0

热门文章

最新文章