Thymeleaf模板解析错误

时间:2015-04-20 14:08:54

标签: java html spring thymeleaf

尝试加载localhost:8080/时出现解析错误。

我在模板中找不到任何错误,为什么我会犯这个错误?

错误

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Apr 20 16:59:56 EEST 2015
There was an unexpected error (type=Internal Server Error, status=500).
Exception parsing document: template="index", line 26 - column 3

模板(HTML)

<tr th:each="customer : ${customers}">
    <td th:text="${customer.identity}">001</td>
    <td th:text="${customer.name}">Name</td>
    <td th:text="${customer.address}">Address</td>
    <td th:text="${customer.age}">Age</td>
</tr>

查看(班级)

public String mainPage(Model model){
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    PersonJDBCTemplate personJDBCTemplate = (PersonJDBCTemplate) context.getBean("personJDBCTemplate");
    List<Person> persons = personJDBCTemplate.getAllPersons();
    model.addAttribute("customers", persons);
    return "index";
}

2 个答案:

答案 0 :(得分:16)

可能错过某个结束标记。我不知道你在HTML模板中有什么,除非你发布完整的代码。

但是用这个模板替换你当前的文件。它应该工作。然后,您可以将遗失的代码添加到其中。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en"></head>
<body>
<tr th:each="customer : ${customers}">
    <td th:text="${customer.identity}">001</td>
    <td th:text="${customer.name}">Name</td>
    <td th:text="${customer.address}">Address</td>
    <td th:text="${customer.age}">Age</td>
</tr>
</body>
</html>

答案 1 :(得分:0)

您的模板名称可能拼写错误!

这只是把我咬在屁股上。所有结束标签都通过在线工具进行了验证,但是当您在控制器中定义的模板引擎名称与实际文件名不完全匹配时,这对您没有帮助。

注意,该答案针对的是该错误的一种可能但不太可能的解释。对于来自搜索领域的人来说,它的作用更大。导致OP发布的具体原因很可能是由于缺少结束标记所致。但是,谁知道呢?不包含控制器代码。