Thymeleaf 标准方言

Thymeleaf 是一个可扩展性极强的模板引擎(实际上,它可以称为模板引擎框架),它允许您定义和自定义处理模板的方式,以达到精细的细节级别。

将某些逻辑应用于标记工件(标签 tag,一些文本 text,一个注释 comment,或者仅仅是一个占位符 placeholder,如果模板不是标记的话)的对象称为处理器,而这些处理器的集合(加上一些额外的工件)通常是方言的组成部分。开箱即用,Thymeleaf 的核心库提供了一种称为标准方言的方言,这对于大多数用户来说应该足够了。

注意:方言实际上可能没有处理器,完全由其他类型的工件组成,但处理器绝对是最常见的用例。

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

Thymeleaf 官方的 thymeleaf-spring3 和 thymeleaf-spring4 集成包都定义了一种称为 “SpringStandard Dialect” 的方言,它与标准方言基本相同,但有一些小的调整,以更好地利用 Spring 框架中的一些特性(例如:使用 Spring 表达式语言或 SpringEL 而不是 OGNL)。因此,如果您是 Spring MVC 用户,您不会浪费时间,因为您在这里学到的几乎所有内容都将在您的 Spring 应用程序中使用。

标准方言的大多数处理器都是属性处理器。这允许浏览器在处理 HTML 模板文件之前正确显示 HTML 模板文件,因为它们只会忽略附加属性。例如,虽然使用标记库的 JSP 可能包含浏览器无法直接显示的代码片段,例如:

<form:inputText name="userName" value="${user.name}" />

Thymeleaf 标准方言将允许我们实现以下功能:

<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

这不仅可以由浏览器正确显示,而且还允许我们(可选地)在其中指定一个 value 属性(在本例中为 “James Carrot”),当在浏览器中静态打开模板时,该属性将被显示,并且在处理模板时,该值将被 ${user.name} 的求值结果所替代。

这有助于您的设计师和开发人员使用相同的模板文件,并减少将静态模板转换为工作模板文件所需的工作量。这样做的能力是一个叫做自然模板的功能。


说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号