Spring Boot管理用户数据

news2024/12/28 15:30:24

目录

  • 学习目标
  • 前言
  • Thymeleaf 模板JSON 数据
      • 步骤 1: 创建 Spring Boot 项目
        • 使用 Spring Initializr 创建项目
        • 使用 IDE 创建项目
      • 步骤 2: 添加依赖
      • 步骤 3: 创建 Controller
      • 步骤 4: 新建index页面
      • 步骤 5: 运行应用程序
  • 表单提交
      • 步骤 1: 添加 Thymeleaf 依赖
        • 在 Maven 中添加依赖
      • 步骤2:创建实体类
      • 步骤 3: 创建 Controller 处理表单请求
      • 步骤 3: 创建 Thymeleaf 模板文件
        • `login.html`
        • `result.html`
      • 步骤 4: 运行应用程序
  • Spring Boot 处理JSON 数据的过程
      • 1.创建实体类
      • 2.创建视图页面
      • 3.控制器
      • 4.运行
  • 总结

学习目标

Spring Boot 的 Web 的开发

  • Thymeleaf 模板JSON 数据

前言

前端开发,也称为客户端开发,专注于用户界面和用户体验。后端开发,或服务器端开发,处理服务器、应用程序和数据库的逻辑。Web开发可以分为两大主要领域:前端开发和后端开发


Thymeleaf 模板JSON 数据

Thymeleaf 是一个的Java模板引擎,具备生成多种文本格式的能力,包括HTML、XML、JavaScript、CSS以及简单的纯文本。

创建一个基于 Thymeleaf 模板的 Spring Boot Web 应用程序相对简单。

步骤 1: 创建 Spring Boot 项目

首先,你需要创建一个新的 Spring Boot 项目。你可以通过 Spring Initializr 网站来创建,或者使用 IDE 如 IntelliJ IDEA 或 Eclipse。

使用 Spring Initializr 创建项目
  1. 访问 Spring Initializr。
  2. 选择项目元数据:
    • Project:Maven Project 或 Gradle Project
    • Language:Java
    • Packaging:Jar
    • Java:选择你安装的 Java 版本
  3. 添加依赖项:
    • Spring Web
    • Thymeleaf
  4. 选择默认的其他选项,点击生成按钮下载项目。
    在这里插入图片描述
    我尝试更换Java版本,在IDEA中使用JDK1.8时一切正常,但当我切换到JDK17时遇到了错误。

为了解决这个问题,我选择了一个曲线救国的方法:回退版本。

我将父类依赖从3.3.4降低到了2.6.4。(避免报错,在我的电脑)
在这里插入图片描述

使用 IDE 创建项目

如果你使用的是支持 Spring Boot 的 IDE,可以在 IDE 中新建一个 Spring Boot 项目,并添加上述依赖。

步骤 2: 添加依赖

在这里插入图片描述

如果你使用的是 Maven,确保在 pom.xml 文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

步骤 3: 创建 Controller

接下来,创建一个简单的控制器来处理 HTTP 请求:

package com.bushuo.demo01.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestThymeleafController {
    @RequestMapping("/index")
    public String test(){
    //返回src/main/resources/templates/index.html
        return "index";
    }
}

步骤 4: 新建index页面

src/main/resources/templates 目录下创建一个名为 index.html 的文件,并添加以下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1 >Welcome to Spring Boot!</h1>
</body>
</html>

步骤 5: 运行应用程序

现在,你可以运行你的 Spring Boot 应用了。在终端或命令提示符中,导航到项目的根目录并执行以下命令:

mvn spring-boot:run

或者在 IDE 中直接运行主类(通常包含 @SpringBootApplication 注解)。

在这里插入图片描述

表单提交

在 Spring Boot 应用程序中使用 Thymeleaf 实现表单提交及数据绑定的过程主要包括以下几个步骤:

  1. 添加 Thymeleaf 依赖
  2. 创建 Controller 处理表单请求
  3. 创建 Thymeleaf 模板文件
  4. 运行应用程序

步骤 1: 添加 Thymeleaf 依赖

确保项目已经包含了 Thymeleaf 依赖。如果你还没有添加,请参考之前的指导在 pom.xml 中添加相应的依赖。

在 Maven 中添加依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

步骤2:创建实体类

在src/main/java 目录下,创建model包,创建实体类loginBean
在这里插入图片描述

package com.bushuo.demo01.model;

public class LoginBean {
    String name;
    String role;
  public LoginBean() {

    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }
}

步骤 3: 创建 Controller 处理表单请求

创建一个控制器来处理表单,并实现数据绑定。
在这里插入图片描述

步骤 3: 创建 Thymeleaf 模板文件

在src/main/resources/templates 目录下
创建两个 Thymeleaf 模板文件:一个用于显示表单 (login.html),另一个用于展示提交后的结果 (result.html)。

login.html

在这里插入图片描述

result.html

在这里插入图片描述

这个模板用于展示表单提交的结果,并提供一个返回按钮让用户回到表单页面。
在application.yml,

在这里插入图片描述

spring:
  thymeleaf:
    encoding: UTF-8
    #开发时关闭缓存(模板只加载一次),不然没法看到实时页面需要重构或重启
    cache: false
    prefix: classpath:/templates/  #(默认)
    suffix: .html

步骤 4: 运行应用程序

运行你的 Spring Boot 应用程序,打开浏览器并访问 http://localhost:8080/toLogin,你应该能看到表单页面。填写用户名和电子邮件地址并提交表单后,你会看到结果页面,并且可以通过返回按钮回到表单页面。
在这里插入图片描述
在这里插入图片描述

Spring Boot 处理JSON 数据的过程

1.创建实体类

在com.bushuo.demo01包中,创建一个实体类来表示要处理的 JSON 数据。例如,创建一个 Person 类:
在这里插入图片描述

2.创建视图页面

在src/main/resources/templates 目录下,创建视图页面input.html.
在这里插入图片描述

3.控制器

在这里插入图片描述

4.运行

在这里插入图片描述
在这里插入图片描述

总结

通过这些步骤,可以在 Spring Boot 应用程序中使用 Thymeleaf 创建一个简单的表单,并处理表单提交的数据。可以根据实际需求进一步扩展这个示例,例如添加更多的表单字段、进行更复杂的表单验证、使用数据库存储数据等。

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

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

相关文章

Vue3.3新特性defineModel

defineModel的使用: defineModel选项可以帮我们省去很多麻烦 不仅需要上述操作&#xff0c;还需要进行一定的配置&#xff1a; 在vite.config.js中进行配置 defineModel是一个宏&#xff0c;所以不需要从vue中import导入&#xff0c;直接使用就可以了。这个宏可以用来声明一个…

Java之线程篇六

目录 CAS CAS伪代码 CAS的应用 实现原子类 实现自旋锁 CAS的ABA问题 ABA问题导致BUG的例子 相关面试题 synchronized原理 synchronized特性 加锁过程 相关面试题 Callable 相关面试题 JUC的常见类 ReentrantLock ReentrantLock 和 synchronized 的区别: 原…

Android 新增目录怎么加入git

工作中会遇到android系统源码系统增加第三方功能支持&#xff0c;需要增加目录&#xff0c;那么这个目录怎么提交到服务器上去呢&#xff1f;接下来我们就看下这个问题的解决 一服务器创建仓库 一个新的目录增加到仓库中&#xff0c;需要仓库有对应的仓库地址&#xff0c;这个让…

小记编程语言浮点精度问题

注意&#xff1a; 本文内容于 2024-09-15 20:21:12 创建&#xff0c;可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容&#xff0c;请访问原文地址&#xff1a;小记编程语言浮点精度问题。感谢您的关注与支持&#xff01; 浮点数在计算机中不能精确表示所有…

docker启动mysql未读取my.cnf配置文件问题

描述 在做mysql主从复制配置两台mysql时&#xff0c;从节点的my.cnf配置为&#xff1a; [mysqld] datadir /usr/local/mysql/slave1/data character-set-server utf8 lower-case-table-names 1 # 主从复制-从机配置# 从服务器唯一 ID server-id 2 # 启用中继日志 relay-l…

【小沐学CAD】3ds Max常见操作汇总

文章目录 1、简介2、二次开发2.1 C 和 3ds Max C SDK2.2 NET 和 3ds Max .NET API2.3 3ds Max 中的 Python 脚本2.4 3ds Max 中的 MAXScript 脚本 3、快捷键3.1 3Dmax键快捷键命令——按字母排序3.2 3dmax快捷键命令——数字键3.3 3dmax功能键快捷键命令3.4 3Dmax常用快捷键——…

对网页聊天项目进行性能测试, 使用JMeter对于基于WebSocket开发的webChat项目的聊天功能进行测试

登录功能 包括接口的设置和csv文件配置 ​​​​​​ 这里csv文件就是使用xlsx保存数据, 然后在浏览器找个网址转成csv文件 注册功能 这里因为需要每次注册的账号不能相同, 所以用了时间函数来当用户名, 保证尽可能的给正确的注册数据, 时间函数使用方法如下 这里输入分钟, 秒…

肝内胆管癌中三级淋巴结构分布与临床预后的相关性研究|文献精析·24-09-22

小罗碎碎念 这篇文章是关于肝内胆管癌&#xff08;intrahepatic cholangiocarcinoma, iCCA&#xff09;中三级淋巴结构&#xff08;tertiary lymphoid structures, TLSs&#xff09;的分布、密度及其对临床结果的预测价值的研究。 作者类型作者姓名单位名称&#xff08;中文&a…

数据结构——串的模式匹配算法(BF算法和KMP算法)

算法目的&#xff1a; 确定主串中所含子串&#xff08;模式串&#xff09;第一次出现的位置&#xff08;定位&#xff09; 算法应用&#xff1a; 搜索引擎、拼写检查、语言翻译、数据压缩 算法种类&#xff1a; BF算法&#xff08;Brute-Force&#xff0c;又称古典的…

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解 题目传送门 题解 CSP-S1 补全程序&#xff0c;致敬全 A 的答案&#xff0c;和神奇的预言家。 写一下这篇的题解说不定能加 CSP 2024 的 RP 首先看到 k k k 这么大的一个常数&#xff0c;就想到了二分。然后写一个判…

《深入理解JAVA虚拟机(第2版)》- 第13章 - 学习笔记【终章】

第13章 线程安全与锁优化 13.1 概述 面向过程的编程思想 将数据和过程独立分开&#xff0c;数据是问题空间中的客体&#xff0c;程序代码是用来处理数据的&#xff0c;这种站在计算机角度来抽象和解决问题的思维方式&#xff0c;称为面向对象的编程思想。 面向对象的编程思想…

一劳永逸:用脚本实现夸克网盘内容自动更新

系统环境&#xff1a;debian/ubuntu 、 安装了python3 原作者项目&#xff1a;https://github.com/Cp0204/quark-auto-save 感谢 缘起 我喜欢看电影追剧&#xff0c;会经常转存一些资源到夸克网盘&#xff0c;电影还好&#xff0c;如果是电视剧&#xff0c;麻烦就来了。 对于一…

Kettle的安装及简单使用

Kettle的安装及简单使用一、kettle概述二、kettle安装部署和使用Windows下安装案例1&#xff1a;MySQL to MySQL案例2&#xff1a;使用作业执行上述转换&#xff0c;并且额外在表stu2中添加一条数据案例3&#xff1a;将hive表的数据输出到hdfs案例4&#xff1a;读取hdfs文件并将…

Jboss常⻅中间件漏洞

一.CVE-2015-7501 环境搭建 cd vulhub-master/jboss/JMXInvokerServlet-deserialization docker-compose up -d 1.POC&#xff0c;访问地址 172.16.1.4:8080/invoker/JMXInvokerServlet 返回如下&#xff0c;说明接⼝开放&#xff0c;此接⼝存在反序列化漏洞 2.下载 ysose…

7.C++程序中的基本数据类型-数据类型之间的转换

在C中&#xff0c;类型转换是将一个数据类型转为另外一个数据类型&#xff0c;其转换过程比较复杂&#xff0c;目前只讨论基本数据类型之间的转换。 类型转换分为两部分&#xff1a;隐式转换和显示转换 隐式转换又称为自动转换&#xff0c;显示转换又称为强制转换。 隐式转换…

[Linux] Linux进程PCB内部信息的深入理解

标题&#xff1a;[Linux] Linux进程PCB内部信息的深入理解 个人主页&#xff1a;水墨不写bug &#xff08;图片来自网络&#xff09; 目录 一.查看进程 二.认识并了解进程的关键信息 I&#xff0c;PID/PPID II&#xff0c;exe III&#xff0c;cwd 三、fork&#xff08;&…

vue源码分析(九)—— 合并配置

文章目录 前言1.vue cli 创建一个基本的vue2 项目2.将mian.js文件改成如下3. 运行结果及其疑问&#xff1f; 一、使用 new Vue 创建过程的 2 种场景二、margeOption的详细说明1.margeOption的方法地址2.合并策略的具体使用3.defaultStrat 默认策略方法 三&#xff1a;以生命周期…

OpenResty安装及使用

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

调用本地大模型服务出现PermissionDeniedError的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【机器学习】---神经架构搜索(NAS)

这里写目录标题 引言1. 什么是神经架构搜索&#xff08;NAS&#xff09;1.1 为什么需要NAS&#xff1f; 2. NAS的三大组件2.1 搜索空间搜索空间设计的考虑因素&#xff1a; 2.2 搜索策略2.3 性能估计 3. NAS的主要方法3.1 基于强化学习的NAS3.2 基于进化算法的NAS3.3 基于梯度的…