You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无框架环境下直接使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:55:16