如何在无框架环境下直接使用Plain Thymeleaf填充模板?
纯Thymeleaf无框架环境下的模板渲染(main方法运行)
1. 引入依赖(Maven)
需要添加Thymeleaf核心包和标准消息解析器依赖:
<dependencies> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>3.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-messageresolver-standard</artifactId> <version>3.1.2.RELEASE</version> </dependency> </dependencies>
2. 准备模板与消息文件
- 模板文件:在
src/main/resources/templates/下创建test.html,内容如下:
<p th:text="#{test.message}">This is a report</p>
- 消息文件:在
src/main/resources/下创建messages.properties,配置要替换的消息:
test.message=Hello from Plain Thymeleaf!
3. 核心Java代码(main方法运行)
import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.Context; import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; import org.thymeleaf.messageresolver.StandardMessageResolver; import java.util.Locale; public class PlainThymeleafMain { public static void main(String[] args) { // 初始化模板解析器:从类路径加载模板文件 ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); templateResolver.setPrefix("templates/"); templateResolver.setSuffix(".html"); templateResolver.setTemplateMode("HTML"); templateResolver.setCharacterEncoding("UTF-8"); // 初始化消息解析器:加载messages.properties中的配置 StandardMessageResolver messageResolver = new StandardMessageResolver(); // 配置并初始化模板引擎 TemplateEngine templateEngine = new TemplateEngine(); templateEngine.setTemplateResolver(templateResolver); templateEngine.setMessageResolver(messageResolver); // 创建渲染上下文,可指定Locale(默认使用系统Locale) Context context = new Context(Locale.getDefault()); // 如果需要填充${}类型的变量,可使用context.setVariable("变量名", 变量值); // 渲染模板并获取结果 String renderedHtml = templateEngine.process("test", context); // 输出渲染后的HTML System.out.println(renderedHtml); } }
运行结果
执行main方法后,控制台会输出替换后的HTML:
<p>Hello from Plain Thymeleaf!</p>
关键说明
#{test.message}是Thymeleaf的消息表达式,需要通过StandardMessageResolver加载messages.properties中的配置来替换;- 如果需要支持多语言,可创建如
messages_en.properties、messages_zh_CN.properties的文件,通过Context传入指定Locale即可切换; - 若要填充
${}类型的变量,直接调用context.setVariable()方法添加变量即可。
内容的提问来源于stack exchange,提问作者HamsterofDeath
相关产品推荐
相关产品推荐

