我想在基于Spring Boot 2.1.5的应用程序中使用Thymeleaf。但是我不需要它来为RestController
创建html输出。与其相反,我希望它创建应用程序可以存储在磁盘上的html文件。
因此,我创建了两个templateResolver
和templateEngine
,如docs所述。模板存储在与RestController
:src/main/resources/templates
相同的位置。例如,一个名为index.html
。
但是无论我配置哪个路径(带或不带classpath
),我都会收到相同的错误消息:
templateResolver.setApplicationContext(this.applicationContext);
templateResolver.setPrefix("classpath:/resources/templates/");
templateResolver.setSuffix(".html");
java.io.FileNotFoundException:类路径资源 [resources / templates / index.html]无法打开,因为它没有 存在
我需要如何配置路径以使其在a)STS内部和b)在创建的jar中工作?
解决此问题的另一种方法是使用spring-boot-starter-thymeleaf
并“抓取”其生成的输出,而不是通过嵌入式Tomcat公开它,但我不知道如何使它工作:
@GetMapping("/noneedforthis")
public String getIndexFileContent(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "index";
}
答案 0 :(得分:0)
我同时检查了Eclipse工作区的本地target
目录和通过运行maven install创建的jar:而不是resources/templates
,模板存储在templates
中。
缩短代码的路径有所帮助,现在Thymeleaf可以找到模板。
使用Thymeleaf的Spring Boot Starter仍然是一个有趣的选择,但是到目前为止,我还没有找到一种方法。