当前位置: 首页 > news >正文

详细介绍:Java-Spring入门指南(十九)thymeleaf基本概念

Java-Spring入门指南(十九)thymeleaf基本概念

  • 前言
  • 一、thymeleaf是什么,有什么用,作用是什么?
    • 什么?就是1.1 Thymeleaf
      • 核心特征总结
    • 1.2 Thymeleaf有什么用?
      • 对比JSP:Thymeleaf的核心优势
      • 实际开发中的使用场景
    • 1.3 Thymeleaf的核心作用是什么?
      • (1)数据绑定:将后端数据嵌入HTML
      • (2)逻辑控制:实现页面动态逻辑
      • (3)格式转换:统一素材显示格式
      • (4)资源引入:动态加载CSS/JS/图片

前言

  • 在上一篇博客中,我们掌握了SpringMVC中JSON的解析与项目间数据交互,解决了“后端如何传递数据给前端”的障碍,但前端接收数据后,如何优雅地渲染页面仍是关键——传统JSP虽能实现视图渲染,但存在依赖Servlet容器、无法静态预览、语法冗余等局限性,尤其在前后端协作场景中效率较低。
  • Thymeleaf正是为解决这些问题而生的模板引擎,它是Spring官方推荐的视图层技术(替代JSP),能在无Servlet容器的环境下直接预览HTML页面,还能利用简洁的语法实现内容绑定、逻辑控制等能力,完美适配SpringMVC的视图需求。
  • 本文作为Thymeleaf的入门概念篇,将聚焦“是什么、有什么用、核心作用”三大核心问题,为下一篇的代码实战(第二十篇)做好理论铺垫;所有内容仍基于我们熟悉的Maven+IDEA+Tomcat 11环境,确保学习连贯性。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Java-Spring入门指南知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_13040333.html?spm=1001.2014.3001.5482

在这里插入图片描述


thymeleaf官方中文文档地址
https://www.wuzao.com/thymeleaf/documentation.html

一、thymeleaf是什么,有什么用,作用是什么?

Thymeleaf的核心定位是“面向Web和独立环境的现代服务器端Java模板引擎”,它不仅能渲染HTML,还支持XML、TEXT、JavaScript等格式,但在SpringMVC中,我们主要用它来处理HTML视图,解决传统JSP的痛点。

1.1 Thymeleaf是什么?

一款“就是Thymeleaf本质能嵌入动态数据的HTML模板引擎”,它通过自定义的标签属性(如th:text)将后端传递的Java数据(如User对象、List列表)嵌入到HTML页面中,最终生成用户看到的动态页面。

它最核心的特性是“天然支持HTML它区别于JSP的关键:就是”,这也

核心特征总结

  • 无容器依赖:不依赖Tomcat等Servlet容器,静态HTML即可预览,降低前后端协作成本。
  • 语法自然:动态逻辑通过th:*属性嵌入HTML,不破坏HTML原有结构,代码可读性高。
  • Spring官方推荐:Spring Boot和Spring MVC均将其作为默认视图引擎,无需繁琐配置即可集成。
  • 功能全面:支持数据绑定、循环遍历、条件判断、日期格式化、资源引入等所有视图层所需能力。

1.2 Thymeleaf有什么用?

在Thymeleaf出现前,JSP是Java Web任务的主流视图技术,但JSP的局限性在前后端分离和快速迭代场景中越来越明显。Thymeleaf的价值,正是通过应对这些痛点提升构建效率。

对比JSP:Thymeleaf的核心优势

对比维度传统JSPThymeleaf
静态预览不支持,直接打开显示<% %>乱码支持,静态HTML显示默认值,动态数据不影响预览
容器依赖依赖Servlet容器(如Tomcat)才能解析无依赖,纯HTML文件即可编辑预览
语法简洁性需混合<% %>、EL表达式,语法繁琐统一用th:*属性,语法简洁易记
前后端协作困难(前端需熟悉JSP语法)简单(前端写纯HTML,后端加th:*属性)
Spring生态适配需额外配置(如视图解析器)官方推荐,Spring Boot自动配置

实际开发中的运用场景

1.3 Thymeleaf的核心作用是什么?

Thymeleaf作为SpringMVC的视图引擎,核心作用是“接收后端传递的数据,动态生成HTML页面”,具体可拆解为4个核心功能,这些功能将在第二十篇代码实战中详细演示:

(1)数据绑定:将后端素材嵌入HTML

这是Thymeleaf最基础的作用,通过th:textth:value等属性,将后端Model中的数据(如model.addAttribute("username", "zhangsan"))显示在HTML页面中。

(2)逻辑控制:达成页面动态逻辑

支持条件判断(th:if/th:unless)、循环遍历(th:each)等逻辑,无需写Java代码,直接在HTML中通过属性实现。

  • 循环示例:后端传递List<User> userList,前端通过<tr th:each="user : ${userList}">遍历列表,动态生成表格行。
  • 条件示例:通过<div th:if="${user.age > 18}">成年</div>,根据用户年龄动态显示不同内容。

(3)格式转换:统一数据显示格式

内置日期、数字、字符串等格式转换器,无需后端手动处理格式,直接在前端通过th:format或相关属性配置。

(4)资源引入:动态加载CSS/JS/图片

通过th:hrefth:src等属性,动态引入CSS、JavaScript、图片等静态资源,避免硬编码路径(尤其在项目部署路径变化时,无需修改资源路径)。

  • 示例:<link rel="stylesheet" th:href="@{/css/style.css}" href="/css/style.css">,静态预览时用href加载本地CSS,动态渲染时用th:href加载项目部署后的CSS。

下一篇将带来Thymeleaf的代码实战(依赖导入、配置、数据绑定与逻辑控制)


我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Java-Spring入门指南知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_13040333.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

http://www.jsqmd.com/news/14948/

相关文章:

  • P2605 [ZJOI2010] 基站选址
  • 洛谷p1462-通往奥格瑞码道路
  • 详细介绍:VR 太阳光参数与快速渲染
  • 位运算中没用的小技巧
  • 超越基础:SightAI 智能路由与多模型选择实战 - sight
  • kafka连接认证
  • [Vulhub靶机]JARBAS靶机渗透
  • CF622D 题解
  • vue学习的总结
  • 最小二乘问题详解5:非线性最小二乘求解实例
  • 【28】C# WinForm入门到精通 ——多文档窗体MDI【属性、强大的方法、实例、源码】【多窗口重叠、水平平铺、垂直平铺、窗体传值】
  • 第五周预习
  • 2025 非标门/铸铝门/别墅大门厂家推荐榜:聚焦品质与服务的实力之选
  • 工业数字化未来:IT与OT融合实践
  • AI安全新威胁:提示注入与模型中毒攻击深度解析
  • 神经网络入门研读报告
  • 阅读《记录一类分治方法》笔记
  • CF2140E2
  • Codeforces 380E Sereja and Dividing 题解 [ 紫 ] [ 线段树 ] [ 贪心 ] [ 数学 ]
  • JPA教程
  • 实验指导-基于阿里云Serverless应用引l擎SAE的服务部署迀移 - 详解
  • 夜莺监控设计思考(二)边缘机房架构思考
  • 搜维尔科技:具有人手级别抓握和操纵能力的灵巧手
  • v-model 的实现原理
  • 防塔游戏单机 王国保卫战全集下载 1~5部全系列MOD DLC修改版 安卓+ios+PC电脑版
  • 详细介绍:【译】Visual Studio 中针对 .NET MAUI 的 XAML 实时预览功能的增强
  • 德州东站换乘攻略(仅供参考)
  • 第十六篇
  • Date 2025.10.6
  • macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本) - 实践