如何获取Thymeleaf中的html内容?

发布于 2022-09-11 20:36:10 字数 1099 浏览 20 评论 0

问题描述

我在SpringBoot中打算写一个邮件模板,在模板中替换变化的参数,转换为 html 字符串,再传给邮件服务。但是在获取html字符串的时候,结果在预期之外

问题出现的环境背景及自己尝试过哪些方法

这是我在学习SpringBoot的邮件服务遇到的问题,参考文章是Spring Boot (十):邮件服务

相关代码

resource/templates/emailTemplate.html

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    你好,<span th:text="${username}"></span>!
</body>
</html>
@Test
    public void testThymeleaf() {
        Context context = new Context();
        context.setVariable("username", "wedjg");
        String result = templateEngine.process("emailTemplate", context);
        System.out.println(result);
    }

你期待的结果是什么?实际看到的错误信息又是什么?

预期的结果是输出被渲染后的html字符串,也就是:<html>...</html>;
但是实际返回的结果却是"emailTemplate"

请问我该如何做才能获取到html字符串?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千纸鹤 2022-09-18 20:36:10

String result = templateEngine.process("emailTemplate", context);

第一个参数不应该是"emailTemplate", 而应该是对应模板的内容, 改成

File file = ResourceUtils.getFile("classpath:template/emailTemplate.html");
String result = templateEngine.process(new String(Files.readAllBytes(file.toPath())),context);
对你而言 2022-09-18 20:36:10

刚好碰到跟楼主相同的问题,如果是采用springboot默认配置的话

@Autowired
private TemplateEngine templateEngine;

@Test
    public void testThymeleaf() {
        Context context = new Context();
        context.setVariable("username", "wedjg");
        String result = templateEngine.process("emailTemplate", context);
        System.out.println(result);
    }

直接使用注入的TemplateEngine对象就能直接访问到resource/templates目录下的模板文件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文