SpringBoot -04 Thymeleaf入门与基础语法

这篇具有很好参考价值的文章主要介绍了SpringBoot -04 Thymeleaf入门与基础语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Thymeleaf介绍

  • 在spring的官方中并不支持jsp的渲染模板,对jsp并不友好,推荐使用Thymeleaf、FreeMarker等模板引擎
    • .html(不能取域对象的值)
    • 能写Java代码的HTML,但是thymsleaf可以取值存值
  • 特点:
    • 动静结合:Thymeleaf页面可以独立运行,不依赖与服务器(jsp不可以)
    • 开箱即用:支持标准的模板语言,无需导入第三方配置
    • SpringBoot完美整合:SpringBoot支持Thymeleaf的启动器

2 Thymeleaf入门

2.1 导入依赖

  • 创建导入web起步依赖
  • Thymeleaf模板起步依赖
<!-- Thymeleaf模板起步依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2.2 编写Thymeleaf页面

  • 页面默认情况下必须定义在templates文件夹中

  • templates文件夹默认不能直接访问(不是静态资源),必须通过Controller转发访问

    • xmlns:th xml name space :Thymeleaf 必须导入Thymeleaf名称空间
    • msg即为后端的key
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>hello,Thymeleaf</h1>
    <h1 th:text="${msg}"></h1>   
</body>
</html>

2.3 编写Controller

Thymeleaf默认的视图解析器前缀和后缀

  • spring.thymeleaf.prefix=classpath:/templates/

  • spring.thymeleaf.suffix=.html

@Controller
public class TestController {

    @RequestMapping("hello")
    public String test(Model model){
        model.addAttribute("msg","Hello,Thymeleaf!!!!");
        return "hello";
    }
}

3 Thymeleaf语法

3.1 th:text 标签

th:text 标签:表示获取域对象中的内容

  • 简单类型
  • 对象类型
  • Map集合
<h1>th:text标签取值</h1>
<!--简单类型-->
<span th:text="${name}"></span>
<span th:text="${age}"></span>
<span th:text="${money}"></span><br>

<!--对象类型-->
<span th:text="${user.username}"></span>
<span th:text="${user.password}"></span>
<span th:text="${user.salary}"></span><br>

<!--Map集合-->
<span th:text="${k1}"></span>
<span th:text="${k2}"></span>
<span th:text="${k3}"></span><br>

3.2 th:each标签

th:each标签 用于获取集合中的值

<h1>th:each标签遍历</h1>
<!--集合类型-->
<table width="80%" align="center" border="1px" cellspacing="0px">
    <tr>
        <th>id</th>
        <th>用户名</th>
        <th>密码</th>
        <th>工资</th>
    </tr>
    <tr th:each="u:${userList}">
        <td th:text="${u.id}"></td>
        <td th:text="${u.username}"></td>
        <td th:text="${u.password}"></td>
        <td th:text="${u.salary}"></td>
    </tr>
</table>

3.3 th:if标签

th:if标签 用于做if判断

<h1>th:if标签判断</h1>
<span th:if="${age<18}">未成年</span>
<span th:unless="${age<18}">成年</span>

3.4 th:inline标签

th:inline 内联标签,嵌套在标签内部使用

<h1>th:inline标签内联</h1>

<!--html内联-->
<span th:inline="text">姓名为:[[${name}]]</span>

<!-- css内联(css中取值) -->
<style th:inline="css">
    span{
        color:[[${color}]]
    }
</style>

<!-- javascript内联(javascript中取值) -->
<script th:inline="javascript">
    console.log([[${name}]]);
</script>

3.5 碎片标签

<!--定义碎片-->
<div th:fragment="header"  style="height: 200px;background-color: #889988">
    网页头部
</div>

<div th:fragment="footer" style="height: 200px;background-color: red">
    网页底部
</div>

直接引入页面

  • 引入头部页面
  • 引入尾部页面
<!-- 引入头部页面 -->
<div th:include="header"></div>
<h1>页面正文内容</h1>
<!-- 引入尾部页面 -->
<div th:include="footer"></div>

引入页面中的碎片

注意:如果引入碎片那么css样式会失效,那么需要使用th:replace标签

th:replace="header::header" 前面的header表示页面名,后面表示碎片名称

<!-- 引入头部片段-->
<div th:replace="header::header"></div>
<h1>页面正文内容</h1>
<!-- 引入尾部片段 -->
<div th:replace="footer::footer"></div>

3.日期处理

日期处理接近于固定格式
<span th:text="${#dates.format(date,'yyyy-MM-dd HH:mm:ss')}"></span>文章来源地址https://www.toymoban.com/news/detail-430391.html

<!--日期处理-->
<span th:text="${#dates.format(date,'yyyy-MM-dd HH:mm:ss')}"></span>

到了这里,关于SpringBoot -04 Thymeleaf入门与基础语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Springboot】SpringBoot基础知识及整合Thymeleaf模板引擎

    🌕博客x主页:己不由心王道长🌕! 🌎文章说明:spring🌎 ✅系列专栏:spring 🌴本篇内容:对SpringBoot进行一个入门学习及对Thymeleaf模板引擎进行整合(对所需知识点进行选择阅读呀~)🌴 ☕️每日一语:在人生的道路上,即使一切都失去了,只要一息尚存,你就没有丝毫理

    2023年04月23日
    浏览(44)
  • FPGA_学习_04_Verilog基础语法和Modelsem仿真

    前言:对于以前学过C/C++/C#的作者来讲,Verilog的基础语法算是 特别简单 的。本文主要介绍Verilog的基础语法和Modelsem仿真。 FPGA开发是以模块为基础的,每个可 综合 的.v文件都是一个模块,模块由 module 和 endmodule 来声明。在这两个的内部,完成模块功能的实现。 在Vi

    2024年02月05日
    浏览(43)
  • 【Spring Boot】Thymeleaf模板引擎 — 表达式的语法

    模板的主要作用是将后台返回的数据渲染到HTML中。那么Thymeleaf是如何解析后台数据的呢?接下来从变量、方法、条件判断、循环、运算(逻辑运算、布尔运算、比较运算、条件运算)方面学习Thymeleaf表达式支持的语法。 (1)文本赋值 赋值就是通过${}标签将后台返回的数据替

    2024年02月14日
    浏览(39)
  • 【vue基础语法详细介绍】

    Vue.js使用声明式渲染、组件化、指令等一系列概念来构建前端应用,以下是一些Vue.js的基本语法和概念: Vue.js 使用了基于HTML的模板语法,允许你声明式地将 DOM 绑定到底层 Vue 实例的数据上。 当 Vue 实例被创建时,它将挂载点内的DOM与数据绑定通过一些指令与特殊的属性连接

    2024年02月01日
    浏览(33)
  • 【Python 零基础入门】基础语法

    当我们学习一门新语言, 首先要熟悉它的语法规则. 这就如同学习一门外语, 我们需要知道句子的结构, 词汇的使用和语法的规则. 与 Java 中的 “{}” 不同, Python 使用缩进. 缩进在 Python 中非常重要, 定义了代码的结构和层次. 通常用 4 个空格作为标准的缩进 (TAP 键). 在我们编写代

    2024年02月04日
    浏览(41)
  • C# 介绍、应用领域、入门、语法、输出和注释详解

    C# (发音为“C-Sharp”)是一种由 Microsoft 创建的面向对象的编程语言,运行在 .NET Framework 上。源于 C 家族,与流行的语言如 C++ 和 Java 相近。首个版本发布于 2002 年,而最新版本, C# 12 ,于 2023 年 11 月发布 C# 广泛用于: 移动应用程序 桌面应用程序 Web 应用程序 Web 服务 网站

    2024年01月16日
    浏览(36)
  • Unity入门基础语法

    transform.position 世界坐标 transform.localPosition  相对坐标 设置物体的坐标: this.transform.localPosition = new Vector3(1.5f, 0, 2.0f); Update(),称为帧更新 此方法会被游戏引擎定时调用,已更新游戏的状态 Time.time 游戏启动的时间 Time.deltaTime 距上次帧更新的时间差 Unity不支持固定帧率,但可

    2024年02月03日
    浏览(84)
  • IDAPython入门基础语法

    IDAPython入门教程 基于IDA7.5_Python3 第一讲 简介与地址获取 IDAPython拥有强大的功能,在使用IDA分析程序时非常有用,可以简化许多操作例如花指令的特征码匹配修改 学习IDAPython需要了解一点Python语言的基本知识以及查询IDAPython文档 IDAPython官方文档: IDAPython documentation 直接在搜索框

    2024年02月01日
    浏览(57)
  • C++(1) —— 基础语法入门

    一、C++初识 1.1 第一个C++程序 1.2 注释  1.3 变量 1.4 常量 1.5 1.6 标识符命名规则 二、数据类型 2.1 整型 2.2 sizeof 2.3 实型(浮点型) 2.4 字符型 2.5 转义字符 2.6 字符串型 2.7 布尔类型 bool 2.8 数据的输入 三、运算符 3.1 算术运算符 3.1.1 加减乘除运算  3.1.2 取模运算

    2024年01月18日
    浏览(84)
  • Java入门&IDEA&基础语法

    1.1 Java简介 Java是什么: Java是一门非常优秀的计算机语言 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java之父:詹姆斯·高斯林(James Gosling) 知道了Java是什么之后,大家就会 想,我们学完Java可以做什么呢?下面,我们

    2024年01月21日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包