【问题标题】:Thymeleaf: Thymeleaf template parsing errorThymeleaf:Thymeleaf 模板解析错误
【发布时间】:2016-04-21 19:44:49
【问题描述】:

我正在实现密码重置功能。要显示具有此功能的网页,我正在使用 thymeleaf。但是当我调用我的简单 demo.html 页面(参见下面的代码)时,它会抛出以下错误:

出现意外错误(类型=内部服务器错误,状态=500)。

异常解析文档:template="demo",第 10 行 - 列

Bean 配置:

@Bean
public ClassLoaderTemplateResolver emailTemplateResolver(){
    ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
    emailTemplateResolver.setPrefix("templates/mail/");
    emailTemplateResolver.setSuffix(".html");
    emailTemplateResolver.setTemplateMode("HTML5");
    emailTemplateResolver.setCharacterEncoding("UTF-8");
    emailTemplateResolver.setOrder(1);
    return emailTemplateResolver;
}

demo.html:

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <form th:action="@{/resetpassword(_key=${resetPasswordToken})}" method="post">
    <div>
    <input type="password" th:field="*{password}">
    <input type="password">
    </div>
    </form>
</body>
</html> 

控制器:

@RequestMapping(value = "/resetpassword", method = RequestMethod.GET)
public String resetpasswordView(@RequestParam(value = "_key") String resetPasswordToken, final Model model) {
    System.out.println(resetPasswordToken);
    model.addAttribute("resetPasswordToken", resetPasswordToken);
    return "demo";
}

我在这里错过了什么?

【问题讨论】:

    标签: spring-mvc spring-boot thymeleaf


    【解决方案1】:

    默认情况下,Thymeleaf 要求您的模板是有效的 XML。您尚未关闭 &lt;input&gt; 标签,因此当它在第 10 行到达 &lt;/div&gt; 时,由于标签不平衡而失败。

    您可以通过关闭标签来解决问题:

    <input type="password" th:field="*{password}" />
    

    或者,您可以使用 Thymeleaf 的旧版 HTML5 模式,但它需要更多设置。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 2017-05-12
      • 2016-12-25
      • 2017-02-19
      • 2018-07-20
      • 2014-07-20
      • 2017-10-06
      • 2017-05-27
      • 1970-01-01
      相关资源
      最近更新 更多