1.3 方言:标准方言

Thymeleaf是一个具有高度可扩展性的模板引擎(事实上它应该被称作是一个模板引擎框架),使你能够定义和定制模板被处理的方式,使其能够在一个较好的细节水平上展示。

处理器(processocr) 是指将逻辑施加于markup制品(一个标签,一些文本,一个备注或一个简单的placeholder)的事物,一套方言(dialect)通常由一组这样的处理器(或许还包括一些制品)组成。Thymeleaf的核心库提供了一个开箱即用的方言叫做标准方言(Standard Dialect) ,这个工具足以满足大部分的用户。

需要注意的是,方言可以完全由制品构成而不包含处理器。但是大多数场景下方言还是包含处理器的

这个教程涵盖了标准方言的内容。你后面将会学到的所有属性和语法都是由标准方言定义的,虽然我们并不会一直强调这一点。

当然,用户能够创建属于自己的方言(甚至扩展标准方言),从而实现自定义处理逻辑的同时还能充分利用库中的高级功能。Thymeleaf能够通过配置同时支持多个方言。

官方的thymeleaf-spring3和thymeleaf-spring4集成包都自定义了“SpringStandard Dialect”,这个方言和标准方言基本相同,但是通过一些细微的调整使其能够支持Spring框架的一些功能(例如,通过使用Spring表达式或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}" />

这样的形式不仅能够被浏览器正确的展示,而且允许我们在其中定义属性的一个默认值(在这里我们将input的值设置为“James Carrot”)。当这段静态代码被直接交给浏览器时,它会生成一个文本输入区input,该input值为James Carrot。当这段代码被处理之后,input的value将会被替换为${user.name}的值

这种形式使得设计师和程序员可以在同一个模板文件上工作,减少了将静态原型转化为运行模板文件的工作量。这种功能被称为原生模板(Natural Templating)

results matching ""

    No results matching ""