如何配置Thymeleaf模板位置

时间:2019-06-14 21:22:04

标签: java spring spring-boot thymeleaf

我想在基于Spring Boot 2.1.5的应用程序中使用Thymeleaf。但是我不需要它来为RestController创建html输出。与其相反,我希望它创建应用程序可以存储在磁盘上的html文件。

因此,我创建了两个templateResolvertemplateEngine,如docs所述。模板存储在与RestControllersrc/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";
}

1 个答案:

答案 0 :(得分:0)

我同时检查了Eclipse工作区的本地target目录和通过运行maven install创建的jar:而不是resources/templates,模板存储在templates中。

缩短代码的路径有所帮助,现在Thymeleaf可以找到模板。

使用Thymeleaf的Spring Boot Starter仍然是一个有趣的选择,但是到目前为止,我还没有找到一种方法。