SpringBoot中web开发-thymeleaf模板引擎的使用

Posted XiaoMaGuai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot中web开发-thymeleaf模板引擎的使用相关的知识,希望对你有一定的参考价值。

官方文档,基于springboot项目的,建议直接从第三章Using Texts开始查阅https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html

1.要使用thymeleaf模板引擎,首先要再pom中引入thymeleaf依赖文件

         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-thymeleaf</artifactId>
         </dependency>

2.thymeleaf的简单使用

  (1)只要将html文件放在resources/templates文件夹下,thymeleaf模板引擎就会将页面自动渲染

    例:再template文件夹下创建一个success.html文件,然后通过localhost:8080/success请求,浏览器展现success.html文件中的内容。

      ①:resources/templates文件夹下创建success.html页面

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
   <h1>成功</h1>
 </body>
 </html>

      ②:在Controller层创建HelloController类,然后在类里边创建请求映射

 package com.xiaoma.springbootweb.controller;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 @Controller
 public class HelloController {
 
     @RequestMapping("/success")
     public String success(){
         return "success";
     }
 }

      ③:运行程序,测试结果。

 3.thymeleaf语法-th语法

  (1)th:text:设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会转义html标签。

    例:将HelloController类中的success方法改为

     @RequestMapping("/success")
     public String success(Map<String,Object> maps){
         maps.put("hello","你好");
         return "success";
     }

    将success.html文件中body里的内容改为(注意:使用thymeleaf的时候要在html页面的html标签中引入命名空间xmlns:th="http://www.thymeleaf.org")

 <body>
     <h1>成功</h1>
     <div th:text="${hello}">张三</div>
 </body>

    运行结果为,从结果可以看出,当使用模板引擎的时候,页面展现的数据是我们绑定的map中的数据,而不会展示html页面中想要展示的数据,如果将页面复制到其他地方单独运行的话,就会将“张三”展示出来,而不会展示我们绑定的“你好”这个数据了。这就是th:text的用法。

   

  2.th:value : 设置当前元素的value值,类似修改指定html标签属性的还有th:src,th:href
  3.th:each : 遍历循环元素,和th:textth:value一起使用。注意该属性修饰的标签位置。
  4.th:if : 条件判断,类似的还有th:unless,th:switch,th:case
  5.th:insert : 代码块引入,类似的还有th:replace,th:include,三者区别很大,若使用不恰当会破坏html结构,常用于公共代码块的提取复用。
  6.th:fragment : 定义代码块,方便被th:insert引用。
  7.th:object : 声明变量,一般和*{}一起配合使用。这些东西的具体使用会在后面做crud实验的时候详细说明。
 3.thymeleaf语法-表达式语法
   (1)变量表达式:${...}
  (2)链接表达式:@{...}:定义URL链接的
  (3)消息表达式:#{...}:用来获取国际化内容的
  (3)代码块表达式:~{...}

 

以上是关于SpringBoot中web开发-thymeleaf模板引擎的使用的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot入门篇--Thymeleaf引擎模板的基本使用方法

springboot & thymeleaf 项目中资源下的静态文件夹和模板文件夹有啥区别?

SpringBoot的Web开发

springboot:web综合开发

4.SpringBoot的web开发1

SpringBoot与Web开发