深色模式
4.6 字面量
文本字面量
文本字面量是用单引号包裹的字符串,可包含任意字符;若字符串内部需要使用单引号,需通过 \' 进行转义。
html
<p>
Now you are looking at a <span th:text="'working web application'">template file</span>.
</p>这段代码中,th:text="'working web application'" 会将 <span> 标签内的默认文本 template file 替换为 working web application。
核心规则解释
单引号包裹: Thymeleaf 中,文本字面量必须用单引号
'包裹(而非双引号),这是区分“文本值”和“表达式”的关键——如果省略单引号,Thymeleaf 会将其解析为变量表达式(比如th:text="working web application"会尝试查找名为working的变量,导致错误)。单引号转义: 若文本本身包含单引号(如
It's a test),需用\'转义内部单引号,否则会导致语法错误:html<span th:text="'It\'s a working web application'">template file</span>渲染后结果为:
It's a working web application。与变量表达式结合: 文本字面量可通过
+与变量表达式拼接,实现动态文本生成:html<!-- 拼接文本和变量:Hello + 用户名 --> <span th:text="'Hello ' + ${user.name}">Hello Guest</span>
常见错误提醒
- ❌ 错误写法:
th:text="working web application"(无单引号,Thymeleaf 会解析为变量,导致找不到working变量); - ❌ 错误写法:
th:text="'It's a test'"(内部单引号未转义,语法中断); - ✅ 正确写法:
th:text="'It\'s a test'"(转义内部单引号)。
总结
- 文本字面量是 Thymeleaf 中表示固定字符串的方式,必须用单引号
'包裹; - 字符串内的单引号需用
\'转义,避免语法错误; - 可通过
+与变量表达式拼接,实现静态文本+动态变量的组合渲染。
