首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thymeleaf: Thymeleaf模板解析错误

Thymeleaf: Thymeleaf模板解析错误
EN

Stack Overflow用户
提问于 2016-01-16 06:25:58
回答 1查看 10.8K关注 0票数 4

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

出现了意外错误(type=Internal服务器错误,status=500)。 异常解析文档:template=“演示”,第10列

Bean配置:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
<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> 

主计长:

代码语言:javascript
复制
@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";
}

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-16 07:11:37

默认情况下,Thymeleaf要求模板为有效的XML。您还没有关闭<input>标记,所以当它到达第10行的</div>时,它会失败,因为标记是不平衡的。

您可以通过关闭标记来解决这个问题:

代码语言:javascript
复制
<input type="password" th:field="*{password}" />

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34824212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档