環境:使用spring boot 1.5.8.RELEASE版本,thymeleaf使用默認的版本(如不配置默認爲:2.1.5.RELEASE)html
場景一:html中標籤沒有正確結束或者錯誤,thymeleaf報錯java
解決一:加入忽略html錯誤的maven配置spring
<nekohtml.version>1.9.22</nekohtml.version> <!-- Thymeleaf配置爲LEGACYHTML5不會強行檢查html格式規範,須要在application.properties中spring.thymeleaf.mode=LEGACYHTML5 --> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>${nekohtml.version}</version> </dependency> -------------------------------- application.properties: ## 配置爲LEGACYHTML5不會強行檢查html格式規範,須要在pom.xml中引入相關依賴 spring.thymeleaf.mode=LEGACYHTML5
上述針對默認的thymeleaf2版本中親測有效....緩存
-------------------------------------------華麗的分割線---------------------------------------------------app
場景二:手動換成thymeleaf3版本,並舒服的使用th:insert等(其實我就是由於這個目的而發現的)maven
解決二:spring-boot
1. 在父項目工程中pom.xml的properties標籤中加入以下配置(nekohtml.version仍然留着,去掉好像也能夠,項目緊就不去深究了~~)spa
<properties> <java.version>1.8</java.version> <!-- Template Begin --> <nekohtml.version>1.9.22</nekohtml.version> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> <thymeleaf-spring4.version>3.0.2.RELEASE</thymeleaf-spring4.version> <thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version> <!-- Template End --> </properties>
2. 子項目pom.xml仍是一如既往的引入spring-boot-starter-thymeleaf就好code
3. 累贅一下,華麗的使用th:insertxml
目的:index.html要引入left.html
因爲可能存在切換模板的可能性,個人主屬性文件配置爲:
### Thymeleaf 配置 ## 配置爲HTML5會強行檢查html格式規範 #spring.thymeleaf.mode=HTML5 ## 配置爲LEGACYHTML5不會強行檢查html格式規範,須要在pom.xml中引入相關依賴 spring.thymeleaf.mode=LEGACYHTML5 spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.content-type=text/html spring.thymeleaf.prefix=classpath:/templates/thymeleaf spring.thymeleaf.suffix=.html #開發時關閉緩存,否則無法看到實時頁面 spring.thymeleaf.cache=false
在left.html中
<th:block th:fragment="menu"></th:block>
在index.html中使用
<th:block th:replace="/seller/left :: menu"></th:block>
完成咯~
--------------------------------------------------------------------------------------
遠遠沒有完成.....................
再來帶個參數的
在index.html中(多個參數,隔開傳過去,也能夠直接在 :: menu後加上 (param1=${'123'},param2=${'456'}) ,效果是同樣的 )
<th:block th:insert="/seller/left :: menu" th:with="param1=${'123'},param2=${'456'}"></th:block>
在left.html中
<th:block th:fragment="menu"> <th:block th:text="${param1}"></th:block></th:block>