SpringBoot整合thymeleaf 報錯解決

近日 在springboot項目中使用thymeleaf時,莫名報了以下錯誤:

 在網上查找文章明白了報錯的原因,這是由於如果使用thymeleaf 爲模板,那麼解析時就要求html必須爲嚴格的html5格式,即必須有完整的結束標記, 不然就會報錯。

在html頁面中,諸如input,meta,link等標籤 ,是可以不用閉合就可以被解析的(自閉合的),但是由於這裏嚴格要求html5格式,於是解決辦法如下:

   1) 在報錯的標籤上加入 結束標籤。

  2) 修改爲不嚴格的模式。

在配置文件中加入如下配置:  

 mode: LEGACYHTML5

使用該配置,需要加入以下依賴:

  <dependency>
      <groupId>net.sourceforge.nekohtml</groupId>
      <artifactId>nekohtml</artifactId>
      <version>1.9.22</version>
 </dependency>

3) 修改高版本的thymeleaf版本 。

  低版本(即spring-boot-starter-parent的版本) SpringBoot 默認使用的thymeleaf 版本爲 2.1版本 ,該版本無法識別html5中常見的自閉合標籤。官方原話,可以使用高版本thymeleaf,並通過配置來解決該問題。可以在pom文件中強行指定thymeleaf的版本 ,如下:

<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>

 然後再配置文件中配置如下:

thymeleaf:
    mode: HTML

事實上,我在使用高版本的springBoot版本(2.0.4.RELEASE)時,並沒有遇到這個情況 ,而該項目中使用的是1.5.9版本的springboot ,這也從側面證明該方法可行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章