5.4 Thymeleaf 的高级用法

第5章 Thymeleaf 模板引擎

5.1 Thymeleaf 入门
5.2 Thymeleaf 表达式
5.3 Thymeleaf 表达式的语法
5.4 Thymeleaf 的高级用法
5.5 Thymeleaf 页面布局

5.4 Thymeleaf 的高级用法

5.4.1 内联

虽然通过 Thymeleaf 中的标签属性已经几乎满足了开发中的所有需求,但是有些情况下需要在 CSS 或 JS 中访问后台返回的数据。
Thymeleaf 提供了 th:inline="text"th:inline="javascript"th:inline="css"th:inline="none" 标签,使用[[...]]内联表达式的方式在 HTML、JavaScript、CSS 代码块中轻松访问 model 对象数据。

  1. 内联属性:th:inline
  2. 内联表达式:[[...]]
1、文本内联

Thymeleaf 内联表达式用[[...]][(...)]语法来表达。

先在父级标签定义 th:inline=“text”,然后在标签内使用[[...]][(...)]表达式来操作数据对象。

文本内联比 th:text 的代码更简洁。

示例:

inline.html

  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>内联</title>
  6. </head>
  7. <body>
  8. <h1>Thymeleaf 模板引擎</h1>
  9. <div>
  10. <h3>内联</h3>
  11. <div th:inline="text">
  12. <p>Hello, [[${userName}]] !</p>
  13. <br/>
  14. </div>
  15. </div>
  16. 以上代码等价于:
  17. <div>
  18. <h3>不使用内联</h3>
  19. <div>
  20. <p th:text="'Hello, ' + ${userName} + ' !'"></p>
  21. <br/>
  22. </div>
  23. </div>
  24. </body>
  25. </html>
  26. (1)th:inline="text"表示使用文本内联方式。
  27. (2)任何父标签都可以加上 th:inline 属性。
  28. (3)[[...]]等价于 th:text 结果将被 HTML 转义,[(...)]等价于 th:utext 结果不会被 HTML 转义。
  29. @RequestMapping("/inline")
  30. public String inline(ModelMap map) {
  31. map.addAttribute("userName", "admin");
  32. return "inline";
  33. }

启动项目后,在浏览器中输入地址 http://localhost:8080/inline, 则会出现如图所示结果。

文本内联

拓展:

th:text 和 th:utext 的区别?

(1)th:text 的使用:

  1. <div th:text="'<h1>Hello World!</h1>'" >Hello</div>
  2. `会被转义`,HTML代码: “<div><h1>Hello World!</h1></div>”,页面上显示结果为:”<h1>Hello World!</h1>

th属性中text

(2)th:utext 的使用:

发表评论

表情:
评论列表 (有 0 条评论,78人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Thymeleaf 基本

    Thymeleaf 的基本用法 > 属于个人整理的文档,大部分内容来源自网络 > > 在这里我们没有打算使用SpringMVC进行整合使用或者说跟Spring Boot

    相关 事件高级

    一、事件基础 1.事件函数 obj.on-事件名=fn 定义事件的时候,事件函数不会自动执行,当事件触发的时候,会执行 2.事件对象 1)事件对象:当浏

    相关 TypeScript高级

    typescript高级用法 引言 作为一门强大的静态类型检查工具,如今在许多中大型应用程序以及流行的JS库中均能看到TypeScript的身影。JS作为一门弱类型语言,