Skip to content

数字字面量

数字字面量就是直接书写的数字,无需额外包裹符号,Thymeleaf 会直接将其解析为数值类型并支持算术运算。

html
<p>The year is <span th:text="2013">1492</span>.</p>
<p>In two years, it will be <span th:text="2013 + 2">1494</span>.</p>
核心代码解释
  1. 纯数字赋值: 第一行中 th:text="2013" 直接将数字字面量 2013 作为文本渲染,替换 <span> 内的默认值 1492,最终显示 The year is 2013

  2. 算术运算支持: 第二行中 th:text="2013 + 2" 会先执行算术运算 2013 + 2 = 2015,再将结果渲染到标签中,替换默认值 1494,最终显示 In two years, it will be 2015。 除了加法 +,还支持减法 -、乘法 *、除法 /、取模 % 等常见算术运算,例如:

    html
    <!-- 乘法:显示 10 -->
    <span th:text="5 * 2">0</span>
    <!-- 取模:显示 1 -->
    <span th:text="7 % 3">0</span>
  3. 与变量表达式结合: 数字字面量可与变量表达式混合运算,实现动态数值计算:

    html
    <!-- 假设上下文变量 age=18,显示 20 -->
    <span th:text="${age} + 2">0</span>
关键注意事项
  • 数字字面量无需加单/双引号(加了会被解析为文本字面量,无法运算): ❌ 错误:th:text="'2013' + 2"(结果为字符串拼接 20132,而非数值运算 2015); ✅ 正确:th:text="2013 + 2"(数值运算,结果为 2015)。
  • 支持整数、小数形式:
    html
    <!-- 显示 3.14 -->
    <span th:text="3.14">0</span>
    <!-- 显示 6.28 -->
    <span th:text="3.14 * 2">0</span>

总结

  1. 数字字面量是直接书写的数值(整数/小数),无需包裹符号,可直接用于赋值或算术运算;
  2. 支持 +/-/*///% 等算术运算,运算优先级符合常规数学规则;
  3. 与变量表达式混合使用时,会自动进行数值运算(需确保变量为数值类型),避免字符串拼接的坑。