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

时间:2022-03-19 06:12:19

前言:

最近在学spring boot,而spring boot推荐使用thymeleaf作为视图,于是就看着书上写了个案例,写好运行。
报错:org.xml.sax.SAXParseException: 元素类型 "meta" 必须由匹配的结束标记 "</meta>" 终止。 

报错原因分析:

报错的原因是meta元素缺少</meta>结束标记,想考了一下,meta元素是html的元素呀,
于是查看自己的页面代码,发现真的是少了结束标记。

错误代码:

<!DOCTYPE html>
<html xmlns="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf Demo</title>
</head>
<body>

    <p >单个</p>
    <div>
        <p>姓名:<span th:text="${single.name}">这些天</span></p>
        <p>年龄:<span th:text="${single.age}">25</span></p>
    </div>
    <br/>
    <p >集合</p>
    <div th:if="${not #lists.isEmpty(personList) }">

        <div th:each="person:${personList}">
            <p>姓名:<span th:text="${person.name}" >这些天</span></p>
            <p>年龄:<span th:text="${person.age}">25</span></p>
        </div>
    </div>

</body>
</html>

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

修改:

<!DOCTYPE html>
<html xmlns="http://www.thymeleaf.org">
<head>


<meta charset="UTF-8" />
<!-- 或者 <meta charset="UTF-8" ></meta> -->


<title>Thymeleaf Demo</title>
</head>
<body>

    <p >单个</p>
    <div>
        <p>姓名:<span th:text="${single.name}">这些天</span></p>
        <p>年龄:<span th:text="${single.age}">25</span></p>
    </div>
    <br/>
    <p >集合</p>
    <div th:if="${not #lists.isEmpty(personList) }">

        <div th:each="person:${personList}">
            <p>姓名:<span th:text="${person.name}" >这些天</span></p>
            <p>年龄:<span th:text="${person.age}">25</span></p>
        </div>
    </div>

</body>
</html>

结论:

thymeleaf模板引擎默认是Template modes:HTML5解析的,所以解析比较严格。以后看来还是要都写上结束的反斜杠呀(/)

说明:
    html5语法
        <meta charset="UTF-8">
    这里不加结束的反斜杠(/)是不会报错的。