Spring Boot 2.x教程-Thymeleaf 原理是什么



layout: post
title: Spring Boot 2.x教程-Thymeleaf 原理是什么
categories: SpringBoot
description: Spring Boot 2.x教程-Thymeleaf 原理是什么
keywords: SpringBoot, Spring, Thymeleaf
---

如要要理清楚 Thymeleaf 的原理,那么就要从模板引擎的原理说起。Thymeleaf只不过是众多模板中的一员,功能是一致的。

例如 JSP 也是一种模板。

1 Thymeleaf 模板原理

模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的 HTML 代码。Thymeleaf 亦是如此。

  1. 没有模板

??没有模板前,我们可以直接用后端语言输出HTML前端,并让浏览器渲染。

  1. 有了模板

??在有了模板后,后端语言只要输出数据(例如 XML 格式、JSON 格式),把数据交给模板引擎,模板引擎根据模板文件和数据进行渲染成HTML文档。

所谓模板引擎,需要把模板文件、数据解析到前端HTML文档流展示给用户看。

??目前 Thymeleaf 是面向 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理 HTML,XML,JavaScript,CSS 设置纯文本。

2 Thymeleaf 模板引擎

Thymeleaf 可以处理 6 种类型的ember

  • HTML
  • XML
  • TEXT
  • JAVASCRIPT
  • CSS
  • RAW

Thymeleaf 支持HTML、JAVASCRIPT、CSS 这就意味着他完全兼容HTML代码。

目前 Thymeleaf 可对下面几种类型进行解析

  1. 文本
  2. 属性
  3. 循环迭代
  4. 条件判断
  5. 模板布局
  6. 局部变量
  7. 属性优先级
  8. 注释
  9. 内联
  10. 文本模板模式
  11. 其他

我们以一个简单的 Spring Boot 2.x教程-如何使用 Thymeleaf 示例来输出来看看 Thymeleaf 是怎么工作的。

2.1 Thymeleaf 的 简单示例

源码下载

2.2 Thymeleaf 工作流程

我们需要提出几个问题

  1. 当在控制层输出对象,这些对象是怎么被引擎识别

??在 Controller 层我们输出了对象 user 和 users 两个对象。这两个对象则被模板引擎托管。

  1. 引擎加载模版文件的时候,如何识别需要替换的值

??模板引擎根据 Controller 中的模板路径 /demo/simple 找到相应的模板文件,模板文件中使用正则表达式查找模板标签语言,Thymeleaf 模板引擎采用 th: 开头。例如 th:value, th:text 。

  1. 最后引擎是如何吧控制层对象转化成 html 等前段语言输出的

??模板引擎找到了模板文件中的模板表达式,模板引擎根据模板表达式中的内容来实现一种算法,算法把 Controller 输出的对象匹配到模板表达式中。



引用

  1. 浅谈模板引擎

原文地址:https://www.cnblogs.com/fishpro/p/10824156.html

时间: 2024-08-30 08:52:24

Spring Boot 2.x教程-Thymeleaf 原理是什么的相关文章

Spring Boot学习记录(二)--thymeleaf模板

Spring Boot学习记录(二)–thymeleaf模板 标签(空格分隔): spring-boot 自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好的和spring集成.下面开始学习. 1.引入依赖 maven中直接引入 <dependency> <groupId>org.springframework.boot</gr

Spring Boot JPA 使用教程

JPA 是 Spring Boot 官方推荐的数据库访问组件,其充分体现了面向对象编程思想,有点像 asp.net 的 EFCore.JPA 也是众多 ORM 的抽象. 从本系列开始,都需要用到 mysql 数据库 和其他一些参考的数据库.请准备相关环节.本章需要以下环境支撑: mysql 5.6+ jdk1.8+ spring boot 2.1.6 idea 2018.1 本项目源码下载 1 数据准备 数据库教程系列都是使用相同的数据,如在 Spring Boot JDBC 使用教程使用的一样

Spring Boot 学习笔记--整合Thymeleaf

1.新建Spring Boot项目 添加spring-boot-starter-thymeleaf依赖 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-thymeleaf</artifactId> 4 </dependency> 2.添加静态文件 根据spring boot默认规则,脚本和样式默

Spring Boot的自动配置的原理

Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器. 1.1.1.   Maven下载源码 通过 dependency:sources 该命令可以下载该项目中所有的依赖的包的源码. 1.1.2.   源码分析 org.springframework.boot.SpringApplication: org.springframework.core.io.support.S

Spring boot(三)整合mybaties+thymeleaf实现基础crud

工程结构: 首先在pom文件中引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

Spring Boot Shiro 使用教程

Apache Shiro 已经大名鼎鼎,搞 Java 的没有不知道的,这类似于 .Net 中的身份验证 form 认证.跟 .net core 中的认证授权策略基本是一样的.当然都不知道也没有关系,因为所有的权限都是模拟的人或机构的社会行为. 本系列从简单的权限讲起,主要涉及到 Shiro.Spring Security.Jwt.OAuth2.0及其他自定义权限策略. 本章主要讲解 Shiro 的基本原理与如何使用,本章主要用到以下基础设施: jdk1.8+ spring boot 2.1.6

Spring Boot面试杀手锏————自动配置原理

转:https://blog.csdn.net/u014745069/article/details/83820511 引言不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项.除了某些老旧的政府项目或金融项目持有观望态度外,如今的各行各业都在飞速的拥抱这个已经不是很新的Spring启动框架. 当然,作为Spring Boot的精髓,自动配置原理的工作过程往往只有在“面试”的时候才能用得上,但是如果在工作中你能够深入的理解Spring Boot的自动配置原理,将无往不

Spring Boot RestApi 测试教程 Mock 的使用

测试 Spring Boot Web 的时候,我们需要用到 MockMvc,即系统伪造一个 mvc 环境.本章主要编写一个基于 RESTful API 正删改查操作的测试用例.本章最终测试用例运行结果如下: 1 MockMvc 简介 Spring Boot Web 项目中我们采用 MockMvc 进行模拟测试 方法 说明 mockMvc.perform 执行一个请求 MockMvcRequestBuilders.get("XXX") 构造一个请求 ResultActions.param

spring boot 自动装配的实现原理和骚操作,不同版本实现细节调整,debug 到裂开......

开篇说明: 注解本身并没有什么实际的功能(非要说标记也是一个“实际”的功能的话,也可以算吧),隐藏在背后的注解处理器才是实现注解机制的核心.本篇将从这两个层面出发探索 spring boot 自动装配的秘密,并使用 spring boot 的自动装配机制来实现自动装配. 本次代码已经放到 github:https://github.com/christmad/code-share/tree/master/spring-boot-config-practice 代码中主要是做了 @Configur