1. 程式人生 > >thymeleaf標籤必須由匹配的結束標記終止

thymeleaf標籤必須由匹配的結束標記終止

問題描述

springboot使用Thymeleaf標籤時會報元素型別必須由匹配的結果標記終止。
如下所示
這裡寫圖片描述

如果我們一個個的給這些元素後面加上終止標記也是件很麻煩的事~~~~

解決辦法

方法一:
在pom.xml中的 properties 中指明Thymeleaf標籤的版本號即可

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding
>
UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!--新增如下兩行程式碼指定Thymeleaf標籤的版本--> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> <thymeleaf-layout-dialect.version>2.0.5</thymeleaf-layout-dialect.version
>
</properties>

但是我表示這是一個坑,因為我在pom.xml中加了這兩行程式碼,導致了我使用springsecurity的<sec:authorize>標籤時總是標籤不起作用,後來通過兩天的時間才找出是這裡為以後的程式埋下了一個深深的坑啊!!!

於是才有了下面的方法二·······

方法二:
在pom.xml中新增依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId
>
</dependency> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency>

application.properties中

spring.thymeleaf.mode=LEGACYHTML5

完美解決問題!!!

辦法三:
距離這篇部落格發出到現在修改也過了好幾個月了,兩次都因為這個原因來修改這篇部落格…….哈哈哈哈,好了言歸正傳,現在來說辦法三

emmmmmmmmmmm,辦法三是啥,辦法三就是別用springboot的低版本,哈哈,在springboot2.0版本以後以後修改了這個標籤問題,所以以後一般都不會再出現這種問題了,除非那些不想用sb2的人,咳咳,就比如我······