# 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`。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://jack80342.gitbook.io/thymeleaf/i.-using-thymeleaf/1-jie-shao-thymeleaf/1.3-dialects-the-standard-dialect.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
