2016-01-16 3 views
2

Я выполняю функцию сброса пароля, и для этого я использую шаблоны тимелеафа. Но вот мой простой 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>, поэтому, когда он достигает </div> в строке 10, он не работает, поскольку теги не сбалансированы.

Вы можете решить эту проблему путем закрытия тега:

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

В качестве альтернативы, вы можете использовать режим HTML5 унаследованного Thymeleaf, но это требует немного больше установки.

Смежные вопросы