Springboot Thymeleaf 实现数据添加、修改、查询、删除

news2024/10/11 4:29:14

1、引言

在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能,通常步骤如下:

  1. 在Controller类中,定义处理HTTP请求的方法。
  2. 创建Thymeleaf模板来处理表单的显示和数据的绑定。

2、用户数据添加

1、 在Controller类中,定义处理HTTP请求的方法。

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;

    @GetMapping("/addPage")
    public String addPage(){
        return "user/add";
    }

    @PostMapping("/add")
    @ResponseBody
    public String add(User user){
        boolean save = userService.save(user);
        return "success";
    }

}

2、创建Thymeleaf 模板处理表单,模板存放在“templates/user/add.html”目录中

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>用户添加页面</title>
 <!--style省略-->
</head>  
<body>  
    <div class="container">  
        <h2>用户添加</h2>
        <form action="/user/add" method="post">
            <label for="name">姓名:</label>  
            <input type="text" id="name" name="name" required>  
  
            <label for="age">年龄:</label>  
            <input type="number" id="age" name="age" min="0" required>  
  
            <label for="email">邮箱:</label>
            <input type="email" id="email" name="email" required>  
  
            <label for="introduce">介绍:</label>
            <textarea id="introduce" name="introduce" rows="4" required></textarea>
  
            <label for="phone">电话号码:</label>  
            <input type="tel" id="phone" name="phone" pattern="[0-9]{11}" placeholder="请输入11位数字" required>  
            <input type="submit" value="提交">  
        </form>  
    </div>  
</body>  
</html>

3、访问页面添加用户

http://127.0.0.1:8080/user/addPage 

在这里插入图片描述

3、用户数据修改

1、 在Controller类中,定义处理HTTP请求的方法。

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;
 
    @GetMapping("/editPage")
    public String editPage(Long id,Model model){
        User user = userService.getById(id);
        model.addAttribute("user",user);
        return "user/edit";
    }

    @PostMapping("/edit")
    @ResponseBody
    public String edit(User user){
        userService.updateById(user);
        return "success";
    }
}

2、创建Thymeleaf 模板处理表单和绑定数据,模板存放在“templates/user/edit.html”目录中

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>用户修改页面</title>
<!--style省略-->
</head>  
<body>  
    <div class="container">  
        <h2>用户修改</h2>
        <form action="/user/edit" method="post">
            <input type="hidden" name="id" th:value="${user.id}" >

            <label for="name">姓名:</label>
            <input type="text" id="name" name="name" th:value="${user.name}" required>
  
            <label for="age">年龄:</label>  
            <input type="number" id="age" name="age" min="0" th:value="${user.age}" required>
  
            <label for="email">邮箱:</label>  
            <input type="email" id="email" name="email" th:value="${user.email}" required>
  
            <label for="introduce">介绍:</label>
            <textarea id="introduce" name="introduce" rows="4"  th:text="${user.introduce}" required></textarea>
  
            <label for="phone">电话号码:</label>  
            <input type="tel" id="phone" name="phone" pattern="[0-9]{11}" th:value="${user.phone}" placeholder="请输入11位数字" required>
  
            <input type="submit" value="提交">  
        </form>  
    </div>  
</body>  
</html>

3、访问页面修改用户

 http://127.0.0.1:8080/user/editPage?id=1

在这里插入图片描述

4、用户数据查询

Thymeleaf 实现数据动态渲染
Thymeleaf实现数据分页

5、用户数据删除

1、 在Controller类中,定义处理HTTP请求的方法。 这里删除完用户,重定向到列表页。

    @GetMapping("/delete")
    public String delete(Long id){
        userService.removeById(id);
        return "redirect:/user/list?pageNum=1";
    }

2、用户列表页模板添加删除按钮

<body>  
    <h1>简历列表</h1>
    <ul class="resume-list" th:with="users=${userPageInfo.list}">
        <li class="resume-item" th:each="user:${users}">
            <a href="/user/detail">
                <h2 th:text="${user.name}">张三</h2>
                <p th:text="${user.introduce}">软件工程师,具有5年工作经验,擅长Java和前端技术。</p>
                <p th:text="${user.phone}">联系方式:123-4567-8901</p>
            </a>
            <a class="delete-button" th:href="'/user/delete?id='+${user.id}" >删除</a>
        </li>
    </ul>
<div class="page-foot">
    <a th:class="${pageNum==userPageInfo.pageNum?'active':''}" th:href="'/user/list?pageNum='+${pageNum}" th:each="pageNum:${userPageInfo.navigatepageNums}" >[[${pageNum}]]</a>
</div>

</body>

删除按钮样式

  .resume-item{
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-content: center;
            align-items: center;
            justify-content: space-between;
        }

        .delete-button{
            cursor: pointer;
            background: red;
            color: white;
            display: block;
            width: 50px;
            height: 30px;
            text-align: center;
            line-height: 30px;
            margin-right: 5%;
            border-radius: 5px;
        }

3、访问用户列表页删除用户

http://127.0.0.1:8080/user/list?pageNum=1

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1567833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年福建三支一扶报名指南—照片<100kb

2024年福建三支一扶报名指南—照片<100kb

目标检测——监控下的汽车

一、重要性及意义 首先&#xff0c;车辆检测技术是保证视频监控系统正常运行的基础。通过监控摄像头实时获取的图像&#xff0c;可以自动检测出图像中的车辆&#xff0c;并进行车辆类型的分类和识别。这对于优化城市交通管理、实现智能交通系统具有重要意义。此外&#xff0c;…

智能小车测速(3.26)

模块介绍&#xff1a; 接线&#xff1a; VCC -- 3.3V 不能接5V&#xff0c;否则遮挡一次会触发3次中断 OUT -- PB14 测速原理&#xff1a; cubeMX设置&#xff1a; PB14设置为gpio中断 打开定时器2&#xff0c;时钟来源设置为内部时钟&#xff0c;设置溢出时间1s&#xff0c…

通义灵码功能上线:编程挑战中Claude3(opus)领先一步

最近好多AI博主都在推荐通义灵码&#xff0c;我就下载下来体验了一下&#xff0c;而且目前通义灵码暂时不收费&#xff0c;而且还有一个推荐奖励的活动&#xff0c;活动内容如下&#xff1a; 邀请好友达到一定人数&#xff0c;有一些奖励。 我目前看到微软的Azure云有个语音转…

LabVIEW电力设备在线监测系统

LabVIEW电力设备在线监测系统 在电力行业中&#xff0c;变电站的稳定运行对于保障电力系统的安全性和可靠性至关重要。开发了一种基于LabVIEW软件开发的变电站电力设备在线监测系统&#xff0c;实时监控变电站内部的电力设备状态&#xff0c;确保电力传输的高效与安全。通过对…

Java—抽象方法与接口

声明&#xff1a;以下内容是根据B站黑马程序员的Java课程&#xff0b;博主自己的理解整理而成&#xff0c;课程很好&#xff0c;适合初学者学习。 关于此类题目&#xff0c;重要的是识别出用什么来实现&#xff0c;到底是接口还是抽象方法&#xff0c;还是共有的属性等等&…

React之Diff 算法

在 React 中&#xff0c;通过 React.createElement 也能生成一个虚拟 DOM 节点&#xff08;ReactElement&#xff09;。在 React15 及以前&#xff0c;采用了递归的方式创建虚拟 DOM&#xff0c;递归过程是不能中断的。如果组件树的层级很深&#xff0c;递归会占用线程很多时间…

达梦配置ODBC连接

达梦配置ODBC连接 基础环境 操作系统&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;DM Database Server 64 V8 架构&#xff1a;单实例1 下载ODBC包 下载网址&#xff1a;https://www.unixodbc.org/ unixODBC-2.3.0.tar.gz2 编译并…

树状数组-数据结构

树状数组 t[x] 节点的父节点为 t[x lowbit(x)] 整棵树的深度为 log2n 1 1 . add(x,k) 给指定的节点x加上k — 动态的维护前缀和 需要从x开始&#xff0c;向上找到所有父节点&#xff0c;值都加上k 2. ask(x) 求取节点x之前的前缀和 求取单点之前的前缀和只需要累加即可 …

redis群集有三种模式

目录 redis群集有三种模式 redis群集有三种模式 分别是主从同步/复制、哨兵模式、Cluster ●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均…

LeetCode | 数组 | 二分查找 | 35.搜索插入位置【C++】

题目链接 题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出…

数据结构——图的应用(最小生成树,最短路径,拓扑排序,关键路径)

目录 1.最小生成树 1.概念回顾——生成树 2.最小生成树概念 2.构造最小生成树 1.MST性质 2.Prim算法 3.Kruskal 算法 4.两种算法比较 3.最短路径 1.两点间最短路径 2.某源点到其它各点最短路径 3.单源最短路径——用Dijkstra算法 4.所有顶点间的最短路径…

Echarts 自适应宽高,或指定宽高进行自适应

文章目录 需求分析 需求 有一个按钮实现对Echarts的指定缩放与拉长&#xff0c;形成自适应效果 拉长后效果图 该块元素缩短后效果图 分析 因为我习惯使用 ref 来获取组件的 DOM 元素&#xff0c;然后进行挂载 <div ref"echartsRef" id"myDiv" :sty…

Shell脚本之基本语法

目录 一、变量定义 变量命名规则&#xff1a; 变量的赋值&#xff1a; 只读变量&#xff1a; 删除变量&#xff1a; 二、变量的类型 自定义变量&#xff1a; 环境变量&#xff1a; 位置参数&#xff1a; 预定义变量&#xff1a; 三、键盘输入 四、数值运算 为什么…

余集和拉格朗日定理

L&#xff1a;一个群的例子&#xff08;在下面的文章中进一步详细介绍&#xff09;;R&#xff1a;约瑟夫路易拉格朗日&#xff08;1736-1813&#xff09;&#xff0c; 一、说明 数学家总是痴迷于根据乍一看似乎完全无关的事实/观察来形成概括。为什么&#xff1f;原因很简单&am…

ideaSSM图书借阅管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 SSM 图书借阅管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码 和数据库&#xff0c;系统主…

JS-11A/11时间继电器 板前接线 JOSEF约瑟

系列型号&#xff1a; JS-11A/11集成电路时间继电器&#xff1b;JS-11A/12集成电路时间继电器&#xff1b; JS-11A/13集成电路时间继电器&#xff1b;JS-11A/136集成电路时间继电器&#xff1b; JS-11A/137集成电路时间继电器&#xff1b;JS-11A/22集成电路时间继电器&#…

一点点金融 4

一点点金融 4 第一性原理&#xff1a;关键事件前后&#xff0c;市场会从不确定性转变为确定性弹簧板、天花板&#xff1a;作为止损、换策略的依据怎么判断弹簧板、天花板&#xff1f; 第一性原理&#xff1a;关键事件前后&#xff0c;市场会从不确定性转变为确定性 在关键事件…

74LVC04六角逆变器-国产兼容MS9113

MS9113S 是一款 S/PDIF 信号接收器。当输入信号频率为 0.1MHz 至 40MHz 时&#xff0c;芯片放大该输入信号至电源电压。最小输入信号幅度的典型值为 80mV。MS9113S 包含一个信号标识位管脚&#xff0c;有输入信号则为高电平&#xff0c;无输入信号则为低电平。MS9113S 还包含一…

LeetCode-94. 二叉树的中序遍历【栈 树 深度优先搜索 二叉树】

LeetCode-94. 二叉树的中序遍历【栈 树 深度优先搜索 二叉树】 题目描述&#xff1a;解题思路一&#xff1a;递归解题思路二&#xff1a;迭代解题思路三&#xff1a;0 题目描述&#xff1a; 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1…