前言:
最近在学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>
修改:
<!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>
结论:
thymeleaf模板引擎默认是Template modes:HTML5解析的,所以解析比较严格。以后看来还是要都写上结束的反斜杠呀(/)
说明:
html5语法
<meta charset="UTF-8">
这里不加结束的反斜杠(/)是不会报错的。