Spring Boot 引入 Thymeleaf 及入门

Spring Boot快速入门指南(新手向) SpringBoot入门 0.学习目标 了解SpringBoot的作用 了解Java配置的方式 了解Spring Boot自动配置原理 掌握Spring Boot的基本使用 了解Thmeleaf的基本使用 1.了解Spring Boot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBoot Spring Boot是Spring项目中的一个子工程,与我们之前所学习的Spring-framew 阅读详情


以前开发 web 项目时,只需将静态的 "html” 页面后缀名修改为“jsp”,然后在文件中加入jsp页面标识即可做jsp开发。

1. 模板引擎

1、市面上主流的 Java 模板引擎有:JSP、Velocity、Freemarker、Thymeleaf
2、JSP 本质也是模板引擎,Spring Boot 默认是不支持jsp的,官方推荐使用 “Thymeleaf”模板引擎
3、模板引擎原理图如下,模板引擎的作用都是将模板(页面)和数据进行整合然后输出显示,区别在于不同的模板使用不同的语法,如 JSP 的JSTL表达式,以及JSP 自己的表达式和语法,同理 Thymeleaf 也有自己的语法

2. Spring Boot 使用 Thymeleaf

1、Thymeleaf 官网:https://www.thymeleaf.org/
2、Thymeleaf 在Github 的主页:https://github.com/thymeleaf/thymeleaf

3. 引入 Thymeleaf

1、使用 Thymeleaf 同样只需要在 pom.xml 引入此模块即可
2、官方文档:“https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#using-boot-starter”

<!-- 引入thymeleaf模板引擎-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

4. 渲染流程规则

1、使用非常简单,可以找到它的自动配置文件即可查看它的使用规则
在这里插入图片描述
2、其中默认规则如下:

  • 默认前缀:DEFAULT_PREFIX = “classpath:/templates/”
  • 默认后缀:DEFAULT_SUFFIX = “.html”

这完全类似 Spring MVC 的映射规则,如果想修改这些配置只需要在全局配置文件中覆盖修改即可。

3、所以默认只要把 HTML 页面放在 classpath:/templates/ 下,thymeleaf 就能自动渲染, classpath:/templates/ 目录以外的 html 文件是无法使用 Thymeleaf 引擎的。

4、当然自己可以在全局配置文件中覆盖修改这些规则,修改的选项可以从 “ThymeleafProperties” 文件中找到,也可以参 考官方文档配置:

#THYMELEAF (ThymeleafAutoConfiguration)
spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.
spring.thymeleaf.servlet.content-type=text/html # Content-Type value written to HTTP responses.
spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.

5. 后台控制层

/**
 * @RestController :表示本类所有的方法都是直接做内容返回到浏览器
 * @Controller :控制层
 */
@Controller
public class HelloController {

    @RequestMapping("/home")
    public String home(Map<String, Object> paramMap) {
        /** 默认Map的内容会放大请求域中,页面可以直接取值*/
        paramMap.put("name", "James");
        /** 会自动跳转到默认的 classpath:/templates/success.html 页面*/
        return "home";
    }

}

注意不要使用@RestController作为控制层,@RestController默认将方法返回值直接返回给浏览器,不会做视图映射。
在控制层中返回逻辑视图名+数据,逻辑视图名为 home ,意思是需要在 resources/templates 目录下提供一个名为 home.html 的 Thymeleaf 模板文件。

6. 前台页面

<!DOCTYPE html>
<!--作用是让IDEA编辑器有Thymeleaf语法提示,不写不影响运行-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
	<!--取值语法之一-->
    <p th:text="${name}"></p>
</body>
</html>

浏览器访问:
http://localhost:8080/home

手动渲染Thymeleaf

上面都是自动渲染 Thymeleaf 模板后返回给浏览器,我们也可以手动渲染 Thymeleaf 模板,这个一般在邮件发送时候有用,例如在 resources/templates 目录下新建一个邮件模板,文件名:mail.html,如下:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>hello 欢迎 <span th:text="${username}"></span>加入 XXX 集团,您的入职信息如下:</p>
<table border="1">
    <tr>
        <td>职位</td>
        <td th:text="${position}"></td>
    </tr>
    <tr>
        <td>薪水</td>
        <td th:text="${salary}"></td>
    </tr>
</table>
<img src="http://www.javaboy.org/images/sb/javaboy.jpg" alt="">
</body>
</html>

现在需要将这个 HTML 模板渲染成一个 String 字符串。

@SpringBootTest
@RunWith(SpringRunner.class)
public class DemoTests {

    @Autowired
    TemplateEngine templateEngine;

    @Test
    public void test(){
        Context context = new Context();
        context.setVariable("username", "James");
        context.setVariable("position", "Java工程师");
        context.setVariable("salary", 99999);
        String mail = templateEngine.process("mail", context);
        System.out.println(mail);
    }

}
  • 注入一个 TemplateEngine 对象,这个对象就是在 Thymeleaf 的自动化配置类中配置的(即当我们引入 Thymeleaf 的依赖之后,这个实例就有了)。
  • 构造一个 Context 对象用来存放变量。
  • 调用 process 方法进行渲染,该方法的返回值就是渲染后的 HTML 字符串。

源码解析

Spring Boot 为 Thymeleaf 提供了自动化配置类org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration 。
在这里插入图片描述
自动化配置类中,使用 ThymeleafProperties 作为配置类,然后 @ConditionalOnClass 注解表示当当前系统中存在 TemplateMode 和 SpringTemplateEngine 类时,当前的自动化配置类才会生效,即只要项目中引入了 Thymeleaf 相关的依赖,这个配置就会生效。

查看下 ThymeleafProperties 配置类。
在这里插入图片描述
前三个 static 变量定义了默认的编码格式、视图解析器的前缀、后缀等。
可以看出来,Thymeleaf 模板的默认位置在 resources/templates 目录下,默认的后缀是 html 。

默认的配置几乎不需要做任何更改就可以直接使用了。
如果有特殊需求,则可以在 application.properties 中配置以 spring.thymeleaf 开头的属性即可。

参考:
Spring Boot 引入 Thymeleaf 及入门

Spring Boot集成Thymeleaf模板引擎技术指南 如果你需要自定义静态资源的位置或URL映射,可以通过配置文件来实现。 阅读详情

相关推荐

【Spring Boot】Thymeleaf模板引擎 — Thymeleaf入门

Thymeleaf是一款非常优秀的服务器端页面模板引擎,适用于Web和独立环境,具有丰富的标签语言和函数,能够处理HTML、XML、JavaScript甚至文本。Thymeleaf相较于其他模板引擎更加优雅。它强调自然模板化(允许模板成为工作原型,而Velocity、FreeMarker模板不允许这样做),所以它的语法更干净,更符合当前Web开发的趋势。

衍生星球的博客 2947

SpringBoot视频教程全家桶

本课程通过以Spring Boot 2.x为技术主线,发散式集成覆盖其他相关知识点,并进行逐一实战讲解。通过本系列课程的学习,你能够学到以下内容:不仅仅能收获到Spring Boot的使用的知识,更能快速扩充知识面,补全基础知识,快速Spring Boot入门到实战。更多基于Spring Boot的组件集成;Spring相关功能及特性在Spring Boot中的使用;部分功能核心源码分析等同时,本课程也可作为大家在日常实践中可快速学习、参考的视频集锦。

Spring Boot整合Hikari连接池与Thymeleaf实战教程

连接池(Connection Pool)是一种用于管理数据库连接的技术,其核心目标是复用数据库连接资源,避免频繁创建与销毁连接带来的性能开销。传统方式中,每次数据库请求都需要建立一次TCP连接、进行身份验证、初始化会话等操作,这些操作在高并发场景下会显著降低系统性能。而连接池通过预先创建并维护一定数量的数据库连接,供应用程序按需获取和释放,从而提升整体响应速度。HikariCP内置了多种监控指标,可以通过接口获取。以下是一些常用的监控指标:指标含义当前活跃连接数。

weixin_33431149的博客 274

springboot整合thymeleaf

springboot整合thymeleaf

听钱塘信来的博客 5984

大一Python之循环解决实际问题

pythin之循环解决实际问题

weixin_66263546的博客 2289

银行客户投诉预测模型优化

在实际操作中,银行可以使用这个优化后的模型来识别那些可能引起客户不满的因素,并采取预防措施。例如,如果模型表明退款金额是一个很强的预测因子,银行可能会审查其退款政策,以确保它对客户是公平和透明的。在银行业务中,客户投诉是一个重要的指标,它直接关系到客户满意度和银行服务质量。某一个指标,比如:退款金额,本文假设退款金额对于预测投诉的权重应该高于赔偿金额。在每次迭代中,本文使用当前的权重组合来训练模型,并计算在测试集上的准确率。的可能值来搜索最佳的权重组合,并输出最佳准确率及对应的权重。来寻找最佳的权重组合。

weixin_57499254的博客 1708

SpringBoot 整合Thymeleaf教程及使用

Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面。

大新软件老杨 1万+

Uds诊断自动化(CANoe.diva应用)

(7)其他配置选择可以保持默认(一般情况下,DTC以及31服务、下载服务需要另外测试)。(1)打开CANoe.Diva软件,并新建Diva工程。(2)设置工程名和保存位置;在"Specification file"(3)测试案例打开后的界面如下,可以对要进行测试的案例进行勾选,(可查看下角的进度条)后;(3)等待DIva工程的生成;(4)接下来是修改Diva工程选项,如下图点击。,如用例间的时间间隔、复位等待时间等。,即可打开导入的测试工程。,即可生成测试用例。(1)在CANoe中。

LIUJIAAAAA的博客 3445

40、springboot 整合 Thymeleaf(Thymeleaf 的自动配置和基本语法及整合)

Thymeleaf的自动配置和基本语法、springboot 整合 Thymeleaf

Java 领域技术分享 5952

MATLAB与图像处理(一):图像中结构张量的求法(Structure Tensor)

1.结构张量的作用:       能够区分图像中的平坦区域,边缘,角点; 2.图像中的结构张量的定义    1)是一个矩阵;    2)与图像的水平,垂直梯度有关,定义如下: 在MATLAB中,可以用如下语句求解:[Ix,Iy]=gradient(Image); 3)求出结构张量矩阵的行列式,和迹(矩阵对角线之和)   行列式:K=det(E);   迹:  

wenyusuran的专栏 5242

HFSS实战项目——GPS北斗双模微带天线

本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。

2401_87464239的博客 1769

SpringBoot集成Thymeleaf

Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎。Thymeleaf 的主要目标是为开发工作流程带来优雅的自然模板,既可以在浏览器中正确显示的 HTML,也可以用作静态原型,从而在开发团队中实现更强大的协作。传统的 JSP+JSTL 组合是已经过去了,Thymeleaf 是现代服务端的模板引擎,与传统的 JSP 不同,Thymeleaf可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利。

m0_58414041的博客 1747

yolov8 PTQ和QAT量化实战(源码详解)

量化():是指将高精度浮点数(FP32)转换为低精度(8bit或4bit)整数的过程,它是模型部署中的一种非常重要的优化方法,可以在较少的精度损失下,大幅提供神经网络的效率和性能。目前主流的神经网络量化方式有PTQ和QATPTQ是训练后量化(),无需数据集和训练,直接量化模型权重QAT是量化感知训练(),量化后需要在数据集上继续微调训练。QAT过程中,我们首先需要选择哪些层需要进行finetune训练,并利用FP32对应层的输出作为监督进行训练。

@bangbang的博客 5328

Spring Boot 引入 Thymeleaf 及入门使用

Spring Boot学习笔记(十四):Spring Boot 推荐我们使用模板引擎 Thymeleaf 来开发页面,因为它语法简单,功能强大。作为模板引擎,Thymeleaf 和市面上主流其他的 Java 模板引擎:JSP、Velocity、Freemarker,原理都是类似的。 模板引擎的作用:将模板(我们开发的页面)和 数据进行整合,然后输出内...

扛麻袋的少年的博客 6940

Autosar MCAL-S32K324 Fee配置-基于EB

Autosar MCAL S32K324 Fee配置详解

赞的博客 1546

AI Agent智能体在Android开发中的应用

本文探讨了AIAgent(智能代理体)在Android开发中的应用,涵盖技术原理、实践案例与未来趋势。AIAgent通过机器学习、自然语言处理等技术实现代码生成、测试自动化及性能优化,显著提升开发效率。例如,强化学习模型可优化APP响应时间(公式:$\text{响应时间}=f(\text{负载},\text{资源})$),自动化测试覆盖率提升至95%。

郑伟强dev的专栏 124

引入thymeleaf_Spring Boot系列之Thymeleaf模板入门

PS:绝对不要为自己想做而不去做的事情找理由。Thymeleaf 是一个用于 Web 开发的 Java 模板引擎,能够处理 HTML、XML、JavaScript、CSS 甚至纯文本,Spring Boot 推荐使用 Thymeleaf 模板引擎而不是传统的 JSP 技术,主要内容如下:引入ThymeleafThymeleaf属性Thymeleaf的使用热部署引入Thymeleaf个人...

weixin_29023471的博客 378

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring Boot Web(二)引入 Thymeleaf 及入门

以前开发web项目时,只需将静态的"html”页面后缀名修改为“jsp”,然后在文件中加入jsp页面标识即可做jsp开发 然而如下所示的Spring Boot 开发的web项目采用打jar包的方式,且使用的是内置的Tomcat,所以默认是不支持jsp的,但可以使用其它的模板引擎 Thymeleaf 官网:https://www.thymeleaf.org/ Thymeleaf 在Githu...

踟蹰千年的博客 405

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring Boot入门(十二) 之 前端静态资源的引入 (webjars 以及 thymeleaf 视图解析器)

首先webjars其实就是以jar包的形式来引入静态资源,官网在此传送门 我们可以看到这里边的静态资源,点击这个maven就会出现maven的坐标 这样就可以直接在pom文件里边导入静态资源 当然我们自己写好的前端静态页面是要放入classpath:/templats/这个目录下的,没有templates可以手动建一个. 比如我们在里边写一个success.html做测试 controll...

weixin_44415928的博客 617

Thymeleaf 入门

Thymeleaf 模板引擎入门,如何在 SpringBoot 中从0开始使用 Thymeleaf, 实现后台数据动态展示和功能开发

gxy_2016的博客 1091

springboot(Thymeleaf、拦截器)

一、常见的模板引擎 JSP、Velocity、Freemarker、Thymeleaf 1.1.Thymeleaf入门 模板引擎的原理 模板引擎可以看做是一种文件(内容)合成技术,我们可以使用某种模板引擎(Freemarker),使用填充数据,对模板进行合并可以输出响应的文件 , 如: model(数据) + ftl (模板文件) = html(合并成html) 1.1.1.引入jar包 &l...

weixin_45737653的博客 1016

基于springboot框架的thymeleaf入门

基于springboot框架的thymeleaf入门 一、什么是Thymeleaf? 二、thymeleaf需要配置什么? 引入所依赖的jar 配置thymeleaf视图解析器 常用语法 一、什么是Thymeleaf? 此处可参考博文 Thymeleaf是一个模板引擎,可以完全替代jsp,类似的模板引擎还有Velocity/FreeMarker。 ThymeLeaf的主要特点: 有网络和无网络环...

weixin_45139929的博客 212

Thymeleaf笔记

Thymeleaf简介: 模板引擎, 可以实现页面静态化技术, 作为动态网页开发技术类似jsp: 页面静态化Velocity/FreeMarker也可以实现这个技术;Thymeleaf是spring官方推荐的技术,开发简单,可以独立开发;可以整合springMVC的可选模块. thymeleaf入门: 1.创建maven工程 2.引入依赖 spring-boot-starter-thymeleaf...

没有 328

动手试一试 Spring Security入门

引入Web和Thymeleaf的依赖启动器。

daqi1983的博客 454

spring-boot-starter-thymeleaf依赖无法引入

教学视频让我们引入这段依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 然后它就一直标红,然后我各种百度,还是找不到解决方案 我寻思着新建一个modu

hayhead的博客 1万+
上一篇: SpringBoot 之注解大全
下一篇: Thymeleaf 标准表达式语法详解
yyangqqian
博客等级 码龄15年 406粉丝 406原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值