Thymeleaf 是一个模板引擎。适合在web程序中为HTML5提供服务

命名空间

xmlns:th="http://www.thymeleaf.org"

Thymeleaf标准表达式

  1. 简单表达式
    • 变量表达式: ${...}

      model.addAttribute("name", "李四");
      
      <p>我的名字是<span th:text="${name}">张三</span></p>
      

      Thymeleaf的语法与使用_字面量

    • 选择变量表达式: *{...}

      选择变量表达式*{...}是另一种类似${...},表示变量的方法,但是选择变量表达式在执行时是在选择的对象上求解,而${...}是在上下文的变量Map上求解。

      model.addAttribute("user", userBean);
      
      <!--通过th:object属性指明选择变量表达式的求解对象-->
      <ul th:object="${user}">
      	<li th:text="*{name}"></li>
      	<li th:text="*{age}"></li>
      	<li th:text="*{gender}"></li>
      </ul>
      <!--标准变量表达式和选择变量表达式可以混用-->
      <ul th:object="${user}">
      	<li th:text="*{name}"></li>
      	<li th:text="${user.age}"></li>
      	<li th:text="*{gender}"></li>
      </ul>
      <!--当th:object存在的时候,可以通过${#object}引用到被选择的对象-->
      <ul th:object="${user}">
      	<li th:text="${#object.name}"></li>
      	<li th:text="${#object.age}"></li>
      	<li th:text="${#object.gender}"></li>
      </ul>
      <!--不存在选择对象的时候,${...}和*{...}等价-->
      <ul>
      	<li th:text="*{user.name}"></li>
      	<li th:text="*{user.age}"></li>
      	<li th:text="*{user.gender}"></li>
      </ul>
      

      Thymeleaf的语法与使用_字符串连接_02

    • 消息表达式: #{...}

      spring:
        messages:
          basename: msg # 配置属性文件所在位置
      

      Thymeleaf的语法与使用_命名空间_03
      Thymeleaf的语法与使用_字面量_04

      <p style="color: red" th:text="#{name}"></p>
      

      Thymeleaf的语法与使用_命名空间_05

    • 链接URL表达式: @{...}

      包括绝对URL(https://www.baidu.com)和相对URL(/index)

      @GetMapping({"/", "/index"})
      public String index(){
      	return "index";
      }
      
      <a th:href="@{/}">首页</a>
      

      Thymeleaf的语法与使用_字符串连接_06

    • 分段表达式: ~{...}

  2. 字面量
    • 文本: 'one text', 'Another one!'
    • 数值: 0, 4, 3.0, 12.4
    • 布尔值: true, false
    • 空: null
    • 标记: one, sometext, other 等
  3. 文本操作
    • 字符串连接: +