springboot使用thymeleaf出现org.xml.sax.SAXParseException的解决办法

问题

      最近在做毕业设计的时候,使用了thymeleaf模板引擎。因为自己前端不是特别6,引用了别人写的前端项目,然后自己修改,并加上引擎标签,然而会出现org.xml.sax.SAXParseException的异常。

       起初,按照异常提示一步步弄,发现改的太多了,太费劲了,而且都是某些缺少结束标记的这种错误。这也不算是错误,只能说没有特备严格准守html5规范。thymeleaf模板引擎默认是Template modes:HTML5解析的,thymeleaf引擎对规范比较严格,若不符合规范,就会报错。

常见的有下面两种:

org.xml.sax.SAXParseException: 元素类型 "meta" 必须由匹配的结束标记 "</meta>" 终止
org.xml.sax.SAXParseException: 元素类型 "link" 必须由匹配的结束标记 "</link>" 终止

  报错原因比较浅显直白,语法格式化错误。

解决方式:

可以根据项目情况做:

如果前端代码修改少的,严格遵守html页面的编写规范,根据要求修改,加上结束标签。

如果前端代码修改多的,节约时间和精力,可以尝试一下方式:

1.配置,在application.properties文件当中加入下面三行。 

spring.thymeleaf.content-type=text/html

spring.thymeleaf.mode =LEGACYHTML5

spring.thymeleaf.cache=false

2.引入额外的maven依赖: 

<!--允许不严格的html5格式出现-->

<dependency>

<groupId>net.sourceforge.nekohtml</groupId>

<artifactId>nekohtml</artifactId>

<version>1.9.22</version>

</dependency>

该依赖是告诉程序不进行严格的html5规范检查。

然后重新运行程序,就不会报错了。

​​​​​​​

猜你喜欢

转载自blog.csdn.net/qq_34147021/article/details/86650039