Spring Boot 集成 Thymeleaf 佈局遇坑

 SpringBoot採用嵌入式的Servlet容器,默認模板解析不支持JSP,須要額外配置,基本上都會初期都會選擇SpringBoot推薦的Thymeleaf模板引擎來解析視圖;html

在剛用Thymeleaf時,可是以爲還行,跟JSP其實也差不了多少,可是本身實際操做起來的時候,仍是遇到了坑,被坑的好久的是Thymeleaf的頁面佈局路徑是根據templates下的路徑,而不是相對路徑;html5

 

遇坑過程:java

在templates下,個人項目路徑以下所示: maven

 --templates佈局

  --crud(d)測試

    --emp(d)spa

    --commons(d)3d

      --module.html(f)code

    --list.html(f)htm

    --add.html(f)

 

module.html裏面是個人模板文件:

 

 而後在emp文件下的list.html進行引入commons文件夾下module.html的公共片斷(TMD還有提示,就認爲是正確的,高興不已):

 

 結果項目一啓動訪問,後臺就一直報500,錯誤以下:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [crud/emp/list], template might not exist or might not be accessible by any of the configured Template Resolvers
    at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]

 

 上網查了好幾種出現這種狀況的解決方式:

  1. 什麼使用了@RestController,@ResponseBody(不會範這種錯)

  2. Thymeleaf要求HTML5規範,不能出現單標籤(一頓解決單標籤操做,仍是不行,結果thymeleaf3.0早就不要求嚴格的html5了)

  3. 要引入thymeleaf-layout-dialect依賴(加了仍是沒有用)

  4. 有人建議清除maven倉庫(沒辦法,把maven本地庫刪了,從新拉取依賴包,結果仍是不行)

 

十分奔潰,好想有一個厲害的高手,惋惜木有。。。

最後在陰差陽錯的測試中,發現原來佈局的分段路徑要以tempaltes路徑來引入是okay的,因而把commons整個文件夾放到了templates的目錄下(但是在list.hmlt引入佈局分段沒有以前編寫時有路徑提示

 

 原本不報但願的,都沒有提示,結果能夠訪問,欲哭無淚呀,不過總算是解決了。。。

相關文章
相關標籤/搜索