# 1.3 方言：标准方言

Thymeleaf是一种极其容易扩展的模板引擎（实际上，它可以被称为模板引擎框架）。它允许你定义和配置如何处理你的模板，使其在细节上达到恰当的水平。

将一些逻辑应用到标记物（一个标签、一些文本、一段注释，或者仅仅是一个占位符，如果模板没有标记）上的物体称为处理器。一套处理器——再加上一些另外的东西，通常就构成了**方言**。开箱即用，Thymeleaf的核心库提供了一种方言，称之为**标准方言**。对于大多数用户，标准方言应该就足够了。

```
注意：方言实际上可以没有处理器，完全由其它东西构成。但是，处理器绝对是最常见的使用案例。
```

此教程论述了标准方言。你接下来学习的每一个属性和语法特性都由此方言定义，即使没有明确指出。

当然，如果用户想要定义自己的处理逻辑，同时利用库的高级特性，他们可以创建自己的方言（甚至可以扩展标准方言）。Thymeleaf也可以配置为同时使用多种方言。

```
官方的thymeleaf-spring3和thymeleaf-spring4整合包都定义了一种称为“SpringStandard Dialect”的方言。
此种方言与标准方言基本相同，但是为了提高Spring框架里一些特性的易用性而进行了些许调整（比如，使用Spring表达式语言或者SpringEL，代替OGNL）。
所以，如果你是一名Spring MVC用户，你并非在浪费时间，你在这儿学到的东西基本上都能用在你的Spring应用里面。
```

标准方言的大多数处理器是属性处理器。这甚至允许浏览器在模版文件被处理之前，正确地显示HTML模版文件。因为它们将会简单地忽略额外的属性。比如，当JSP使用标签库时，它可以包含一段代码，而不是直接被浏览器展示，比如：

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

······Thymeleaf标准方言允许我们实现相同的功能：

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

这不仅仅会被浏览器正确地显示，而且还允许我们在里面指定一个值属性（在这里是“James Carrot”）。当在浏览器里静态地打开时，会显示James Carrot。而在处理模版时，James Carrot会被`${user.name}`的值取代。

这有助于你的设计师和开发者在相同的模版文件上工作，减少了从静态原型转换到可用的模版文件的麻烦。这种能力是一个特性，称之为`Natural Templating`。
