欢迎您的访问
专注于分享最有价值的互联网技术干货

一、Thymeleaf 简介

几个T的资料等你来白嫖
双倍快乐
一定要收藏这个宝藏网站防止丢失,求助资源~!!!

一、Thymeleaf 简介

1.1 什么是 Thymeleaf?

Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理 HTML,XML,JavaScript,CSS 甚至纯文本。

Thymeleaf 的主要目标是提供一种优雅且高度可维护的模板创建方式。为此,它以“自然模板”的概念为基础,以不影响模板用作设计原型的方式将其逻辑注入模板文件。这样可以改善设计沟通,并缩小设计团队与开发团队之间的差距。

Thymeleaf 的设计也从一开始就考虑了 Web 标准-特别是 HTML5 –如果需要,您可以创建完全验证的模板。

1.2 Thymeleaf 可以处理哪种模板?

开箱即用的 Thymeleaf 允许您处理六种模板,每种模板都称为 Template Mode

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

有两种标记模板模式(HTMLXML),三种文本模板模式(TEXTJAVASCRIPTCSS)和无操作模板模式(RAW)。

HTML 模板模式将允许任何类型的 HTMLImporting,包括 HTML5,HTML 4 和 XHTML。将不执行任何验证或格式正确性检查,并且模板代码/结构将在输出中得到最大程度的尊重。

XML 模板模式将允许 XMLImporting。在这种情况下,代码应该是格式正确的-没有未关闭的标签,没有未引用的属性等,并且如果发现格式错误,则解析器将引发异常。请注意,不会执行* validation *(针对 DTD 或 XML 模式)。

TEXT 模板模式将允许对非标记性质的模板使用特殊语法。此类模板的示例可能是文本电子邮件或模板化文档。请注意,HTML 或 XML 模板也可以处理为TEXT,在这种情况下,它们不会被解析为标记,并且每个标签,DOCTYPE,Comments 等都将被视为纯文本。

JAVASCRIPT 模板模式将允许在 Thymeleaf 应用程序中处理 JavaScript 文件。这意味着能够以与在 HTML 文件中相同的方式使用 JavaScript 文件中的模型数据,但是具有特定于 JavaScript 的集成,例如专用转义或自然脚本JAVASCRIPT模板模式被视为文本模式,因此使用与TEXT模板模式相同的特殊语法。

CSS 模板模式将允许处理 Thymeleaf 应用程序中涉及的 CSS 文件。与JAVASCRIPT模式类似,CSS模板模式也是* text *模式,并使用TEXT模板模式中的特殊处理语法。

RAW 模板模式根本不会处理模板。它旨在用于将未修改的资源(文件,URL 响应等)插入正在处理的模板中。例如,可以安全地知道将不会执行这些资源可能包含的任何 Thymeleaf 代码,而将 HTML 格式的外部不受控制的资源包含在应用程序模板中。

1.3 方言:标准方言

Thymeleaf 是一个非常可扩展的模板引擎(实际上,它可以称为* template engine framework *),它允许您定义和自定义将模板处理到详细级别的方式。

将某种逻辑应用于标记工件(如果模板不是标记的话,标记,一些文本,Comments 或仅占位符)的对象称为* processor *,以及一组这些处理器-也许还有一些额外的工件-通常是“方言”的组成部分。开箱即用的 Thymeleaf 核心库提供了一种称为 Standard Dialect 的方言,对于大多数用户来说,这已经足够了。

请注意,方言实际上可以没有处理器,而完全由其他类型的工件组成,但是处理器无疑是最常见的用例。

本教程介绍了标准方言。即使未明确提及,您在接下来的页面中将学习的每个属性和语法功能都由该方言定义。

当然,如果用户想在利用 Library 的高级功能的同时定义自己的处理逻辑,则可以创建自己的方言(甚至扩展标准方言)。 Thymeleaf 也可以配置为一次使用多种方言。

官方的 thymeleaf-spring3 和 thymeleaf-spring4 集成软件包都定义了一种称为“ SpringStandard Dialect”的方言,该方言与 Standard Dialect 大致相同,但进行了较小的改动以更好地利用 Spring Framework 中的某些功能(例如,方法是使用 Spring Expression Language 或 SpringEL 而不是 OGNL)。因此,如果您是 Spring MVC 用户,那么您就不会浪费时间,因为您在此处学习的几乎所有内容都将在 Spring 应用程序中使用。

标准方言的大多数处理器都是属性处理器。这使浏览器甚至在处理之前也能正确显示 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}求值所得的值替换。

这可以帮助您的设计人员和开发人员处理完全相同的模板文件,并减少将静态原型转换为工作模板文件所需的工作。执行此操作的功能是称为自然模板的功能。

赞(0) 打赏
版权归原创作者所有,任何形式转载请联系我们:大白菜博客 » 一、Thymeleaf 简介

评论 抢沙发

0 + 7 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

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

支付宝扫一扫打赏

微信扫一扫打赏