Thymeleaf:Thymeleaf模板解析错误

Pra*_*ngh 4 spring-mvc thymeleaf spring-boot

我正在进行密码重置功能,为此,我使用百万美元模板.但这是我的简单html,它不会呈现.这告诉我波纹管错误:

@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;
}
Run Code Online (Sandbox Code Playgroud)

我的百里香叶配置

<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> 
Run Code Online (Sandbox Code Playgroud)

我的demo.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";
}
Run Code Online (Sandbox Code Playgroud)

我的控制器是

@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;
}
Run Code Online (Sandbox Code Playgroud)

我认为这是非常简单的HTML,它应该是render.So,请帮助我,我在这里缺少什么?

谢谢

And*_*son 6

默认情况下,Thymeleaf要求您的模板是有效的XML.您尚未关闭<input>标记,因此当它到达</div>第10行时,它会因标记不平衡而失败.

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

<input type="password" th:field="*{password}" />
Run Code Online (Sandbox Code Playgroud)

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