[thymeleaf] - 1.Thymeleaf是什么
Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎,能够处 理HTML,XML,JavaScript,CSS甚⾄纯⽂本。
Thymeleaf旨在提供⼀个优雅的、⾼度可维护的创建模板的⽅式。 为了实 现这⼀⽬标,Thymeleaf建⽴在⾃然模板的概念上,将其逻辑注⼊到模板 ⽂件中,不会影响模板设计原型。 这改善了设计的沟通,弥合了设计和 开发团队之间的差距。
Thymeleaf从设计之初就遵循Web标准——特别是HTML5标准 ,如果需 要,Thymeleaf允许您创建完全符合HTML5验证标准的模板。
Thymeleaf能处理哪些模版
开箱即⽤,Thymeleaf可让处理六种类型的模板,每种类型的模板称为模 板模式: HTML XML TEXT JAVASCRIPT CSS RAW 这六种模版模式包含两种标记模板模式(HTML和XML),三种⽂本模板 模式(TEXT,JAVASCRIPT和CSS)和⼀个⽆操作模板模式(RAW)。 HTML模板模式将允许任何类型的HTML输⼊,包括HTML5,HTML 4和 XHTML。Thymeleaf在html5⾮验证模式和验证模式下都能正确执⾏,并 且在输出结果中最⼤程度的遵循模板代码/结构。 XML模板模式将允许XML输⼊。在这种情况下,代码预期形式良好 - 没有 未关闭的标签,没有引⽤属性等,如果出现⾮法XML输⼊,解析器将抛出 异常。请注意,Thymeleaf不会执⾏XML验证(针对DTD或XML架构)。 TEXT模板模式将允许对⾮标记特性的模板使⽤特殊语法。例如:⽂本电 ⼦邮件或模板⽂档。请注意,HTML或XML模板也可以作为TEXT处理, 在这种情况下,它们将不会被解析为标记,并且每个标签如: DOCTYPE,注释等都将被视为纯⽂本。 JAVASCRIPT模板模式将允许在Thymeleaf应⽤程序中处理JavaScript⽂ 件。这意味着可以在JavaScript⽂件中像与HTML⽂件中⼀样的⽅式使⽤ 模型数据,但可以使⽤特定于JavaScript的集成,例如专⻔的转义或⾃然 脚本。 JAVASCRIPT模板模式被认为是⽂本模式,因此使⽤与TEXT模板 模式相同的特殊语法。
CSS模板模式将允许处理涉及Thymeleaf应⽤程序的CSS⽂件。与 JAVASCRIPT模式类似,CSS模板模式也是⽂本模式,并使⽤TEXT模板 模式下的特殊处理语法。 RAW模板模式根本不会处理模板。它⽤于将未经修改的资源(⽂件, URL响应等)插⼊正在处理的模板中。例如,HTML格式的外部不受控制 的资源可以包含在应⽤程序模板中,安全地知道这些资源可能包含的任何 Thymeleaf代码将不会被执⾏。
Thymeleaf标准⽅⾔ Thymeleaf是⼀个扩展性很强的模板引擎(实际上它可以称为模板引擎框 架),Thyme Leaf允许您⾃定义模板,并且很好的处理该模版的细节。 将⼀些逻辑应⽤于标记组件(标签,某些⽂本,注释或只有占位符)的⼀ 个对象被称为处理器,通常这些处理器的集合以及⼀些额外的组件就组成 了Thymeleaf⽅⾔。 开箱即⽤,Thymeleaf的核⼼库提供了⼀种称为标准 ⽅⾔的⽅⾔,这对⼤多数⽤户来说应该是⾜够的。 请注意,⽅⾔实际上可能不包含处理器,并且完全由其他类型的组 件构成,但处理器绝对是最常⻅的⽤例。 本教程涵盖Thyme Leaf的标准⽅⾔。 您将在后⾯章节中的每个属性和语 法功能都由Thyme Leaf标准⽅⾔定义,即使没有明确提及。 当然,如果⽤户希望在使⽤标准⽅⾔库的⾼级功能的同时还想定义⾃⼰的 处理逻辑,您也可以创建⾃⼰的⽅⾔(甚⾄扩展标准的⽅⾔)。您 也可 以将Thymeleaf配置为⼀次使⽤⼏种⽅⾔。 官⽅的thymeleaf-spring3和thymeleaf-spring4的整合包⾥都定义了 ⼀种称为“spring标准⽅⾔”的⽅⾔,该⽅⾔与“Thyme Leaf标准⽅ ⾔”⼤致相同,但是对于Spring框架中的某些功能(例如,通过使⽤ SpringEL表达式代替OGNL表达式)做了⼀些简单的调整。 所以如 果你是⼀个Spring MVC⽤户,使⽤ThymeLeaf并不会浪费你的时 间,因为你在这⾥学到的所有东⻄都将可以应⽤到你的Spring应⽤ 程序中。 ThymeLeaf标准⽅⾔中的⼤多数处理器都是是属性处理器。 这样,即使 在模版未被处理之前,浏览器也可以正确地显示HTML模板⽂件,因为浏 览器将简单地忽略其不识别的属性。 例如,像下⾯这段JSP模版的代码⽚ 段就不能在模版被解析之前通过浏览器直接显示了:
<form:inputText name="userName" value="${user.name}" />
然⽽Thymeleaf标准⽅⾔将允许我们实现与上述代码相同的功能:
<input type="text" name="userName" value="James Carrot" th
:value="${user.name}" />
浏览器不仅可以正确显示这些信息,⽽且还可以(可选地)在浏览器中静 态打开时显示⼀个默认的值(可选地),(在本列中为“James Carrot”), 在模板处理期间由$ {user.name}的值代替value的真实值。 这有助于您的设计师和开发⼈员处理相同的模板⽂件,并减少将静态原型 转换为⼯作模板⽂件所需的⼯作量。 具备这种能⼒的模版我们称为⾃然 模板。
[thymeleaf] - 1.Thymeleaf是什么的更多相关文章
- 【Thymeleaf】Thymeleaf模板对html实时刷新
解决方案 spring: thymeleaf: cache: false 修改完html代码后Ctrl+Shift+F9,重新编译即可刷新页面内容!
- 【Thymeleaf】Thymeleaf模板对没有结束符的HTML5标签解析出错的解决办法
解决方案 spring: thymeleaf: mode: LEGACYHTML5 <dependency> <groupId>net.sourceforge.nekohtml ...
- (一)Thymeleaf用法——Thymeleaf简介
1. thymeleaf认识 参考官方文档(Project version: 3.0.5.RELEASE) 1.1 介绍 Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能 ...
- Spring Boot整合Thymeleaf及Thymeleaf页面基本语法
引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- Layui + thymeleaf org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: " 错误解决
解决方法: 1.将layui的代码移动到新的js文件当中,用template模板引擎的方式引入: <script th:src="@{/static/js/facility/mover ...
- thymeleaf 基本表达式
Thymeleaf 基本表达式 如需了解thymeleaf以及thymeleaf整合spring,请参考<Thymeleaf模板引擎使用>.<Thymeleaf 集成spring&g ...
- SpringMVC4+thymeleaf3的一个简单实例(篇二:springMVC与thymeleaf的整合)
延续前篇内容. 开始之前,我们首先要准备以下12个jar文件:spring-aop-4.3.3.RELEASE.jarspring-beans-4.3.3.RELEASE.jarspring-cont ...
- Springboot与Thymeleaf模板引擎整合基础教程(附源码)
前言 由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也 ...
- Spring boot(三)整合mybaties+thymeleaf实现基础crud
工程结构: 首先在pom文件中引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xml ...
随机推荐
- Gamma函数深入理解
Gamma函数 当n为正整数时,n的阶乘定义如下:n! = n * (n - 1) * (n - 2) * … * 2 * 1. 当n不是整数时,n!为多少?我们先给出答案. 容易证明,Γ(x + 1 ...
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
elasticsearch启动时遇到的错误 问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144: 解决: 切换到root用户 执行命令: sysctl -w vm ...
- nginx tomcat https
.首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel . server { listen s ...
- Chrome表单自动填充如何取消(暂时可行的解决办法)
做项目时一直遇到一个问题,那就是用chrome测试的时候页面上的表单一直会自动填充,并且伴有黄色的背景颜色,有时候感觉很方便,有时候又很想去掉. 之前也多次寻找过方法,但是网上的方法都差不多,很多都是 ...
- vue:vuex详解
一.什么是Vuex? https://vuex.vuejs.org/zh-cn 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相 ...
- sparkStrming 实时插入 mysql 今天使用echart 实现了简单数据展示 很low 但学习必须加深
- Prometheus监控学习笔记之Prometheus不完全避坑指南
0x00 概述 Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 k8s 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行 ...
- word2010自定义的多级列表编号变成黑块的解决办法
首先,看图说话 是的,当我保存Word再打开之后,我辛辛苦苦(没错,小白有罪,调来调去真辛苦)搞得多级列表编号变成了黑块,默默无言,只有泪千行,还好有万能的Google. 解决办法: 将光标移到黑块的 ...
- P3243 [HNOI2015]菜肴制作(拓扑排序)
P3243 [HNOI2015]菜肴制作 题目误导你正着做拓扑排序,然鹅你可以手造数据推翻它.于是就只能倒着做 我们开个优先队列,每次把可填的最大的编号取出来搞,最后倒着输出拓扑序就好辣 #inclu ...
- P2221 [HAOI2012]高速公路(线段树)
P2221 [HAOI2012]高速公路 显然答案为 $\dfrac{\sum_{i=l}^r\sum_{j=l}^{r}dis[i][j]}{C_{r-l+1}^2}$ 下面倒是挺好算,组合数瞎搞 ...