首页 > 其他分享 >Spring Boot 3 集成 Thymeleaf

Spring Boot 3 集成 Thymeleaf

时间:2024-01-04 18:32:24浏览次数:19  
标签:Controller Spring Boot Thymeleaf thymeleaf 模板

在现代的Web开发中,构建灵活、动态的用户界面是至关重要的。Spring Boot和Thymeleaf的结合为开发者提供了一种简单而强大的方式来创建动态的Web应用。本文将介绍如何在Spring Boot项目中集成Thymeleaf,并展示一些基本的使用方法。

themeleaf.jpg

什么是Thymeleaf?

Thymeleaf是一款用于Web和独立环境的现代化服务器端Java模板引擎。它能够处理HTML、XML、JavaScript、CSS甚至纯文本。Thymeleaf的语法简单易懂,它允许开发者在模板中嵌入表达式,以便动态地渲染数据。

官网地址:https://www.thymeleaf.org/

官方文档:https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html

github地址:https://github.com/thymeleaf

开始集成Thymeleaf

首先,确保你的Spring Boot项目已经建立。接下来,我们将添加Thymeleaf的依赖。在pom.xml文件中,添加以下依赖:

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

这将引入Spring Boot Thymeleaf Starter,它包含了Thymeleaf的所有必要依赖。

配置Thymeleaf

在Spring Boot应用中,Thymeleaf的默认配置通常已经足够满足大多数需求。然而,你也可以通过在application.properties或application.yml文件中进行配置来修改默认设置。以下是一个基本的Thymeleaf配置示例:

spring:
  # 配置thymeleaf的相关信息
  thymeleaf:
    # 开启视图解析
    enabled: true
    #编码格式
    encoding: UTF-8
    #前缀配置
    prefix: classpath:/templates/
    # 后缀配置
    suffix: .html
    #是否使用缓存 开发环境时不设置缓存
    cache: false
    # 格式为 HTML 格式
    mode: HTML5
    # 配置类型
    servlet:
      content-type: text/html

创建Thymeleaf模板

src/main/resources/templates/目录下创建Thymeleaf模板文件。例如,我们创建一个名为index.html的文件:

<!DOCTYPE html>
<html lang="en"  xmlns:th="http://www.thymeleaf.org">

<head>
    <meta charset="UTF-8">
    <title>修己</title>
</head>
<body>
<span th:text="${name}" style="font-size: 60px;font-weight: bold;color: #00C957;font-family: 楷体,cursive">xj</span>
</body>
</html>

修改 html 标签用于引入 thymeleaf 引擎,这样才可以在其他标签里使用 th:* 语法,声明如下:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">

创建Controller

现在,我们需要一个Controller来处理请求并提供数据给Thymeleaf模板。创建一个简单的Controller类:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;


@Controller
public class TestController {
    @GetMapping({"/","/index"})
    public String  listUser(Model model){
        model.addAttribute("name","修己");
        return "index";
    }
}

注:

我们前后端分离的项目在controller上一般都会使用@RestController注解,@RestController 注解是 @Controller 和 @ResponseBody 注解的结合,它的作用相当于在每个方法上都添加了 @ResponseBody,用于构建 RESTful Web服务。使用 @RestController 注解的类,每个方法的返回值都会被直接写入HTTP响应体中,而不会经过视图解析器进行渲染。默认情况下,返回的是JSON格式的数据,但可以通过其他注解配置以返回不同格式的数据。

@Controller 通常用于传统的MVC应用程序,其中控制器负责处理HTTP请求,并返回一个视图(HTML页面)或者通过视图解析器解析的模型数据。Thymeleaf通常与@Controller一起使用,因为Thymeleaf模板引擎负责渲染HTML视图。

运行应用

现在你可以运行你的Spring Boot应用程序。访问http://localhost:8000 或者 http://localhost:8000/index,你应该能够看到渲染后的页面,上面显示着动态设置的name。

b2c3450a2ac4a54cd8c29f97bd22cf2.png

语法

Thymeleaf 是一款现代化的服务器端Java模板引擎,专为Web应用开发而设计。其语法清晰、易读,广泛支持HTML、XML、JavaScript等多种模板类型。尽管我之前对Thymeleaf的页面开发经验有限,但最近在网络上发现了一篇介绍Thymeleaf基本语法和特性的博客。我觉得这篇博客内容非常有价值,于是决定将其分享给家人,以便更多人能够受益。如果你也对Thymeleaf感兴趣,可以在这里查看博客内容:https://fanlychie.github.io/post/thymeleaf.html

总结

通过集成Thymeleaf,我们能够在Spring Boot应用中创建动态且灵活的用户界面。Thymeleaf的简单语法和与Spring Boot的无缝集成使得开发者能够轻松构建功能丰富的Web应用。

标签:Controller,Spring,Boot,Thymeleaf,thymeleaf,模板
From: https://blog.51cto.com/xiuji/9103698

相关文章

  • 如何在Spring Boot中创建和自定义Starter
    引言SpringBoot提供了一种简化Spring应用开发的方式,并通过提供大量的starter依赖来进一步减少配置。然而,有时候我们需要根据特定需求来创建自定义的starter。本文将详细介绍如何创建和自定义SpringBootstarter。创建自定义Starter的步骤步骤1:创建项目结构创建一个Maven项目,并......
  • Spring的ApplicationContext核心分析
    跟着孙哥学Spring,b站:https://www.bilibili.com/video/BV185411477k/?spm_id_from=333.337.search-card.all.click1.AnnotationConfigApplicationContext执行过程publicstaticvoidmain(String[]args){AnnotationConfigApplicationContextctx=newAnnotationConfig......
  • Reboot and select proper Boot device
    "RebootandselectproperBootdevice"是计算机启动时出现的错误信息之一,通常表示计算机无法找到正确的启动设备。这个错误信息可能是由多种原因引起的,包括硬件故障、操作系统问题、BIOS设置等。以下是一些可能的解决方案:检查硬件连接:确保所有硬盘、光驱和其他可启动设备都已正......
  • Spring 应用合并之路(一):摸石头过河 | 京东云技术团队
    公司在推进降本增效,在尝试多种手段之后,发现应用太多,每个应用都做跨机房容灾部署,则最少需要4台机器(称为容器更合适)。那么,将相近应用做一个合并,减少维护项目,提高机器利用率就是一个可选方案。经过前后三次不同的折腾,最后探索出来一个可行方案。记录一下,分享出来,希望对有相关需求的......
  • SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现
      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助。但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑时,简单的代码生成功能无法解决。  目前市面上的代码生成器层出不穷,大多......
  • 一款神仙级SpringCloud微服务开源项目,接私活吊到不行!(附源码)
    今天给大家推荐一个牛逼的接私活项目,SpringCloud微服务架构项目!一个由商业级项目升级优化而来的微服务架构,采用SpringBoot2.7、SpringCloud等核心技术构建,提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。架构图项目介绍采用前后端分离的模式......
  • RocketMQ系统性学习-SpringCloud Alibaba集成RocketMQ以及消息追踪、延时消息实战
    欢迎关注公众号:【11来了】发送“资料”可领取深入理解Redis系列文章结合电商场景讲解Redis使用场景、中间件系列笔记和编程高频电子书!作者为在读研究生,目前研二,计划在公众号记录学习常用中间件笔记,以及明年更新面试经历!消息追踪设置消息追踪需要修改broker启动的配置文件......
  • 手拉手后端Springboot整合JWT
    环境介绍技术栈springboot+mybatis-plus+mysql+java-jwt软件版本mysql8IDEAIntelliJIDEA2022.2.1JDK1.8SpringBoot2.7.13mybatis-plus3.5.3.2JsonWeb令牌简称JWTToken是在服务端产生的一串字符串是客户端访问资源接口(AP)时所需要的资源凭证。Token认证Token是在服务端产生的一......
  • 手拉手Springboot整合JWT
    环境介绍技术栈springboot+mybatis-plus+mysql+java-jwt软件版本mysql8IDEAIntelliJIDEA2022.2.1JDK1.8SpringBoot2.7.13mybatis-plus3.5.3.2JsonWeb令牌简称JWTToken是在服务端产生的一串字符串是客户端访问资源接口(AP)时所需要的资源凭证。 Token认证流程1、客户端使用用......
  • 初识Sringboot3+vue3环境准备
    环境准备后端环境准备下载JDK17https://www.oracle.com/java/technologies/downloads/#jdk17-windows   安装就下一步下一步,选择安装路径 配置环境 环境JDK17+、IDEA2021+、maven3.5+、vscode后端基础:javaSE,javaWeb、JDBC、SMM框架(Spring+SpringMVC+MyBatis)、MyBatis-Plus前......