Thymeleaf简单介绍

来源:互联网 发布:固定收益私募 知乎 编辑:程序博客网 时间:2024/06/03 20:04

1.1 Thymeleaf是什么

Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎,能够处 理HTML,XML,JavaScript,CSS甚⾄纯⽂本。

Thymeleaf旨在提供⼀个优雅的、⾼度可维护的创建模板的⽅式。 为了实 现这⼀⽬标,Thymeleaf建⽴在⾃然模板的概念上,将其逻辑注⼊到模板

⽂件中,不会影响模板设计原型。 这改善了设计的沟通,弥合了设计和开发团队之间的差距。

Thymeleaf从设计之初就遵循Web标准——特别是HTML5标准 ,如果需 要,Thymeleaf允许您创建完全符合HTML5验证标准的模板。

1.2 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模板 模式相同的特殊语法。


1.3 Thymeleaf标准⽅⾔

Thymeleaf是⼀个扩展性很强的模板引擎(实际上它可以称为模板引擎框 架),Thyme Leaf允许您⾃定义模板,并且很好的处理该模版的细节。

将⼀些逻辑应⽤于标记组件(标签,某些⽂本,注释或只有占位符)的⼀个对象被称为处理器,通常这些处理器的集合以及⼀些额外的组件就组成 了Thymeleaf⽅⾔。 开箱即⽤,Thymeleaf的核⼼库提供了⼀种称为标准

⽅⾔的⽅⾔,这对⼤多数⽤户来说应该是⾜够的。

请注意,⽅⾔实际上可能不包含处理器,并且完全由其他类型的组件构成,但处理器绝对是最常⻅的⽤例。

本教程涵盖Thyme Leaf的标准⽅⾔。 您将在后⾯章节中的每个属性和语 法功能都由Thyme Leaf标准⽅⾔定义,即使没有明确提及。

当然,如果⽤户希望在使⽤标准⽅⾔库的⾼级功能的同时还想定义⾃⼰的处理逻辑,您也可以创建⾃⼰的⽅⾔(甚⾄扩展标准的⽅⾔)。您 也可 以将Thymeleaf配置为⼀次使⽤⼏种⽅⾔。

官⽅的thymeleaf-spring3thymeleaf-spring4的整合包⾥都定义了

⼀种称为“spring标准⽅⾔的⽅⾔,该⽅⾔与“Thyme Leaf标准⽅

⼤致相同,但是对于Spring框架中的某些功能(例如,通过使⽤ SpringEL表达式代替OGNL表达式)做了⼀些简单的调整。 所以如 果你是⼀个Spring MVC⽤户,使⽤ThymeLeaf并不会浪费你的时 间,因为你在这⾥学到的所有东⻄都将可以应⽤到你的Spring应⽤ 程序中。

ThymeLeaf标准⽅⾔中的⼤多数处理器都是是属性处理器。 这样,即使 在模版未被处理之前,浏览器也可以正确地显示HTML模板⽂件,因为浏 览器将简单地忽略其不识别的属性。 例如,像下⾯这段JSP模版的代码⽚ 段就不能在模版被解析之前通过浏览器直接显示了:

然⽽Thymeleaf标准⽅⾔将允许我们实现与上述代码相同的功能:

浏览器不仅可以正确显示这些信息,⽽且还可以(可选地)在浏览器中静

态打开时显示⼀个默认的值(可选地),(在本列中为“James Carrot”), 在模板处理期间由$ {user.name}的值代替value的真实值。

这有助于您的设计师和开发⼈员处理相同的模板⽂件,并减少将静态原型转换为⼯作模板⽂件所需的⼯作量。 具备这种能⼒的模版我们称为⾃然模板。