SpringBoot项目中读取resource/templates下文件方法
时间: 2024-09-29 17:16:12 浏览: 43
在Spring Boot项目中,如果你想要从`resource/templates`目录下读取文件,通常你会使用`Resource`类或者`ClassPathResource`类配合`Template`类来进行操作,特别是当涉及到Freemarker或者Thymeleaf这样的模板引擎时。以下是一个简单的例子,展示如何使用Freemarker读取模板文件:
```java
import org.springframework.core.io.ClassPathResource;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
public String readTemplateFile(String templateName) {
ClassPathResource resource = new ClassPathResource("templates/" + templateName + ".ftl");
try (InputStream inputStream = resource.getInputStream()) {
return FreeMarkerTemplateUtils.processTemplateIntoString(freeMarkerConfig, inputStream);
} catch (IOException e) {
throw new RuntimeException("Failed to read template file", e);
}
}
private Configuration freeMarkerConfig = ... // 初始化你的FreeMarker配置,包含解析器、变量等
```
在这个例子中,`processTemplateIntoString`方法会将模板内容填充到上下文中,并返回渲染后的字符串。
如果你使用的是Thymeleaf,你可以这样加载模板:
```java
@Autowired
private TemplateEngine templateEngine;
public String readThymeleafTemplate(String templateName) {
Resource resource = new ClassPathResource("templates/" + templateName + ".html");
ThymeleafTemplateEngine engine = new ThymeleafTemplateEngine();
return engine.process(resource, context);
}
```
这里假设你已经设置了`context`作为Thymeleaf的模板上下文。
阅读全文