Thymeleaf模板使用

Posted pannijingling

tags:

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

<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.12</version>
</dependency>


## 2. 模板文件编写
### 2.1 html模板文件
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h2 th:text="${hello}"></h2>
</body>
</html>

2.2 txt模板文件

public interface [(${javaTableName})]Ser {

}

## 3. 根据模板生成文件
### 3.1 生成Html文件
```java
import java.io.FileWriter;
import java.io.IOException;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

@SpringBootTest
class AppTests {
    @Test
    public void createTemplate() throws IOException {
        //创建模版加载器
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        resolver.setPrefix("templates/html/");  //模板文件的所在目录
        resolver.setSuffix(".html");       //模板文件后缀
        //创建模板引擎
        TemplateEngine templateEngine = new TemplateEngine();
        //将加载器放入模板引擎
        templateEngine.setTemplateResolver(resolver);
        //创建字符输出流并且自定义输出文件的位置和文件名
        FileWriter writer = new FileWriter("F:/codeInfo/index.html");
        //创建Context对象(存放Model)
        Context context = new Context();
        //放入数据
        context.setVariable("hello", "我去,太赞了");
        //创建静态文件,"list"是模板的文件名称
        templateEngine.process("list",context,writer);
        System.out.println("执行完毕");
    }
}

### 3.2 生成java文件
```java
import java.io.FileWriter;
import java.io.IOException;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

@SpringBootTest
class AppTests {    
    @Test
    public void createTemplate() throws IOException {
        //创建模版加载器
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        resolver.setPrefix("templates/java/");  // 模板文件的所在目录
        resolver.setSuffix(".java.txt");            // 模板文件后缀
        resolver.setCharacterEncoding("UTF-8"); // 读取模板资源的字符编码
        resolver.setCacheable(false);           // 是否缓存

        //创建模板引擎
        TemplateEngine templateEngine = new TemplateEngine();
        //将加载器放入模板引擎
        templateEngine.setTemplateResolver(resolver);

        //创建Context对象(存放Model)
        Context context = new Context();
        //放入数据
        context.setVariable("controllerPackage", "com.qfx.main.controller");
        context.setVariable("servicePackage", "com.qfx.main.service");
        context.setVariable("javaTableName","SysUser");

        //创建字符输出流并且自定义输出文件的位置和文件名
        //创建静态文件,"service"是模板的文件名称
        FileWriter writer = new FileWriter("F:/codeInfo/SysUserService.java");
        templateEngine.process("service",context,writer);

        //创建字符输出流并且自定义输出文件的位置和文件名
        writer = new FileWriter("F:/codeInfo/SysUserController.java");
        //创建静态文件,"controller"是模板的文件名称
        templateEngine.process("controller",context,writer);

        System.out.println("执行完毕鸟。。。");
    }
}

public interface SysUserSer {

}

以上是关于Thymeleaf模板使用的主要内容,如果未能解决你的问题,请参考以下文章

使用thymeleaf模板引擎抽取公共页面

Thymeleaf(第八章)模板布局

Spring boot:thymeleaf 没有正确渲染片段

SpringBoot中Thymeleaf创建模板

自然模板(例如Thymeleaf)时如何处理代码重复?

Spring MVC 3.2 Thymeleaf Ajax 片段