2016-01-16 85 views
2

我在做密碼重置功能,爲此,我使用thymeleaf模板。但這裏是我簡單的html,它不會呈現。這告訴我,波紋管錯誤:Thymeleaf:Thymeleaf模板解析錯誤

There was an unexpected error (type=Internal Server Error, status=500). 
Exception parsing document: template="demo", line 10 - column 

我thymeleaf配置

@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"; 
     } 

我認爲這是非常簡單的HTML,它應該呈現。那麼,請幫我看看我在這裏錯過了什麼?

謝謝

回答

5

默認情況下,Thymeleaf要求您的模板是有效的XML。您尚未關閉<input>標籤,因此當它在第10行到達</div>時,它會因爲標籤不平衡而失敗。

您可以通過關閉標籤解決該問題:

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

或者,你可以使用Thymeleaf的遺產HTML5模式,但它需要多一點的設置。