首先引入maven依赖
<!--Thymeleaf模板引擎 -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.9.RELEASE</version>
</dependency>
<!--解决测试Thymeleaf生成静态页面时报错java.lang.NoClassDefFoundError: ognl/enhance/UnsupportedCompilationException
因为测试时是直接处理模板,而没有经过servlet,所以不能加载到-->
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.12</version>
</dependency>
创建 thymeleaf模板
我的模板是放到了resource下,一个简单的模板
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
Hello<h1 th:text="${world}"></h1>
</body>
</html>
创建工具类
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.jeecgframework.core.util.ResourceUtil;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
public class TemplateUtils {
public static void main(String[] args) {
Context context = new Context();
context.setVariable("world","world");
boolean temp = process("temp", context, "E:/html/index.html");
System.out.println(temp);
}
/**
* 生成静态文件
* @param freeTempName 模板名称
* @param context 数据内容
* @param outFilePath 输出路径
* @return
*/
public static boolean process(String freeTempName,Context context,String outFilePath){
FileWriter fileWriter = null;
try {
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("tempfiles/");//存放模板路径
resolver.setSuffix(".html");//模板文件后缀名
resolver.setCharacterEncoding("UTF-8");//设置字符集
TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(resolver);
fileWriter = new FileWriter(outFilePath);
templateEngine.process(freeTempName, context,fileWriter);
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try {
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
return true;
}
}
结果
这里只是简单的介绍了一下thymeleaf生成静态页面,网上资料很多,这些代码也是找出来的,只是自己用到了整理一下。
thymeleaf的具体可以查看 Thymeleaf官方文档