拓展阅读
java 表达式引擎
logstash 日志加工处理-08-表达式执行引擎 AviatorScript+MVEL+OGNL+SpEL+JEXL+JUEL+Janino
QLExpress 阿里表达式引擎系统学习
Thymeleaf简介
1.1 什么是Thymeleaf?
Thymeleaf是一款现代的服务器端Java模板引擎,适用于Web和独立环境,能够处理HTML、XML、JavaScript、CSS甚至纯文本。
Thymeleaf的主要目标是提供一种优雅且易于维护的创建模板的方式。为实现这一目标,它建立在自然模板的概念上,以一种不影响将模板用作设计原型的方式将其逻辑注入模板文件中。这有助于改善设计和开发团队之间的沟通,弥合设计与开发之间的差距。
Thymeleaf从一开始就考虑了Web标准,特别是HTML5,允许您创建完全验证的模板(如果需要的话)。
1.2 Thymeleaf可以处理哪些类型的模板?
在开箱即用的情况下,Thymeleaf允许处理六种类型的模板,每种都被称为模板模式:
- HTML
- XML
- TEXT
- JAVASCRIPT
- CSS
- RAW
有两种标记模板模式(HTML和XML),三种文本模板模式(TEXT、JAVASCRIPT和CSS)以及一种无操作模板模式(RAW)。
HTML模板模式将允许任何类型的HTML输入,包括HTML5、HTML 4和XHTML。不会执行验证或格式良好检查,模板代码/结构将在输出中尽可能大程度地保留。
XML模板模式将允许XML输入。在这种情况下,代码应为格式良好的,不允许有未关闭的标签、未引用的属性等,如果发现格式良好性违规,则解析器将抛出异常。请注意,不会执行验证(针对DTD或XML Schema)。
TEXT模板模式将允许使用非标记性质的模板的特殊语法。此类模板的示例可能是文本电子邮件或模板化文档。请注意,HTML或XML模板也可以被处理为TEXT,在这种情况下,它们不会被解析为标记,每个标签、DOCTYPE、注释等将被视为纯文本。
JAVASCRIPT模板模式将允许处理Thymeleaf应用程序中的JavaScript文件。这意味着可以在JavaScript文件中以与在HTML文件中相同的方式使用模型数据,但具有JavaScript特定的集成,如专门的转义或自然脚本。JAVASCRIPT模板模式被视为文本模式,因此使用与TEXT模板模式相同的特殊语法。
CSS模板模式将允许处理Thymeleaf应用程序中涉及的CSS文件。与JAVASCRIPT模式类似,CSS模板模式也是文本模式,并使用TEXT模板模式的特殊处理语法。
RAW模板模式将根本不处理模板。它旨在用于将未触及的资源(文件、URL响应等)插入到正在处理的模板中。例如,可以将以HTML格式呈现的外部、不受控制的资源安全地包含到应用程序模板中,以确保这些资源可能包含的任何Thymeleaf代码不会被执行。
1.3 方言:标准方言
Thymeleaf是一款极其可扩展的模板引擎(实际上可以称之为模板引擎框架),允许您详细定义和定制模板的处理方式。
将某种逻辑应用于标记工件(标签、一些文本、注释或者仅仅是占位符,如果模板不是标记)的对象称为处理器,一个方言通常由一组这些处理器以及可能的一些额外工件组成。Thymeleaf的核心库提供了一个称为“标准方言”的方言,对大多数用户来说应该足够了。
请注意,方言实际上可能没有处理器,并且完全由其他类型的工件组成,但处理器绝对是最常见的用例。
本教程涵盖了标准方言。即使没有明确提到,你将在以下页面中学到的每个属性和语法功能都是由该方言定义的。
当然,用户可以创建自己的方言(甚至扩展标准方言),如果他们想要定义自己的处理逻辑并利用库的高级功能。Thymeleaf还可以配置为同时使用多个方言。
官方的thymeleaf-spring3和thymeleaf-spring4集成包都定义了一个称为“SpringStandard方言”的方言,它与标准方言