gpt4 book ai didi

java - 我可以从字符串手动渲染 Thymeleaf 模板吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:47 24 4
gpt4 key购买 nike

我有一个即将进行的项目,它具有以下要求:

  • 使用起来非常简单(希望最终用户会使用它)
  • 基于Java,项目将使用Spring3编写
  • 基于字符串的加载(尽管对类似的建议持开放态度)因为我会将模板存储在数据库中,而不是作为文件

这其中棘手的部分似乎是让模板引擎从数据库加载模板。

我非常喜欢 Thymeleaf 的外观,但我不知道如何从字符串手动呈现模板 - 有人试过吗?

我乐于接受有关更好的工作技术的建议,但这是我的偏好。

最佳答案

你可以这样做:

1。添加依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

或者,如果你不使用 spring boot,你可以只添加 thymeleaf 依赖。

2。配置解析器

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
import org.thymeleaf.templateresolver.ITemplateResolver;

@Configuration
public class TemplateEngineConfig {
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(templateResolver());
return templateEngine;
}

private ITemplateResolver templateResolver() {
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("templates/mail/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(1);
resolver.setCacheable(true);
return resolver;
}
}

3。创建您的模板

src/main/resources/templates/mail/myfile.html:

<html>
<body>
<div th:text="${myDivContent}"></div>
</body>
</html>

4。使用 org.thymeleaf.context.Context

呈现模板
    Context myContext = new Context();
myContext.setVariable("myDivContent", "Hello, the weather is foggy");

String htmlTemplate = templateEngine.process(templateName, myContext);

templateName 是一个字符串变量。 templateContext 是一个 org.thymeleaf.context.Context 实现。

关于java - 我可以从字符串手动渲染 Thymeleaf 模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com