spring boot thymeleaf相關問題

環境:使用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

ojo ojo ojo ojo ojo ojo 我滴癲鬼唷~

在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>
相關文章
相關標籤/搜索