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引入佈局分段沒有以前編寫時有路徑提示)
原本不報但願的,都沒有提示,結果能夠訪問,欲哭無淚呀,不過總算是解決了。。。