# 12.1. 表达式内联

尽管标准方言允许我们使用标签属性做几乎任何事情，但某些情况下，我们还是更喜欢直接在HTML文本里书写表达式。比如，我们更喜欢这样写：

```markup
<p>Hello, [[${session.user.name}]]!</p>
```

而不是写成这样：

```markup
<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>
```

在Thymeleaf里，`[[...]]`或者`[(...)]`之间的表达式被当做`内联的表达式`。在它们里面，我们可以使用任何类型的表达式。这些表达式在`th:text`或者`th:utext`属性里面也同样有效。

注意：`[[...]]`对应于`th:text`（即结果会是转义的HTML），`[(...)]`对应于`th:utext`，不会执行任何的HTML转义。所以，如果有一个变量，类似于`msg = 'This is <b>great!</b>'`。考虑下面的片段：

```markup
<p>The message is "[(${msg})]"</p>
```

结果里的`<b>`标签没有被转义：

```markup
<p>The message is "This is <b>great!</b>"</p>
```

如果像下面这样转义：

```markup
<p>The message is "[[${msg}]]"</p>
```

结果会是转义的HTML：

```markup
<p>The message is "This is &lt;b&gt;great!&lt;/b&gt;"</p>
```

注意：在我们的标记里，每一个标签主体里，`文本内联是默认激活的`——不是标签自身，所以我们不需要做任何事情来启用它。
