错误描述:
在springboot程序当中,使用thymeleaf作为视图的时候,跳转到页面上的时候,会出现org.xml.sax.SAXParseException的异常(SAX解析器解析xml文件异常),报错的大概意思是某个标签没有闭标签。如下:
org.xml.sax.SAXParseException: 元素类型 "meta" 必须由匹配的结束标记 "</meta>" 终止
原因如下:
thymeleaf模板引擎默认是Template modes:HTML5解析的,解析比较严格,对html的内容要求很严格,假如不符合规范,那么就会报错。
解决办法:
1、写HTML时,完全遵照H5的标准来写。(有点难!)
2、修改thymeleaf 配置,通知解析程序不要这么严格。
thymeleaf 配置如下:
########################################################
### thymeleaf 配置
########################################################
#前缀
spring.thymeleaf.prefix=/WEB-INF/jsp/
#后缀
spring.thymeleaf.suffix=.html
#模式
#此模式不需要要求严格遵守HTML5标准
#LEGACYHTML5需要搭配一个额外的库NekoHTML才可用
spring.thymeleaf.mode=LEGACYHTML5
#此模式要求严格遵守HTML5标准
#spring.thymeleaf.mode=HTML5
#编码
spring.thymeleaf.encoding=UTF-8
# ;charset=<encoding> is added
spring.thymeleaf.content-type=text/html
# set to false for hot refresh
#去除缓存
spring.thymeleaf.cache=false
然后再添加依赖,如下:
<!-- 对应application.properties中LEGACYHTML5 -->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>