Spring Boot 在使用thymeleaf模板引擎时出现org.xml.sax.SAXParseException的原因与解决办法

错误描述:

在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>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值