Я пытаюсь вывести html, который был обработан листом тимьяна, поэтому значения вроде $ {name}, $ {address} что угодно - будут заполнены.
Но на самом деле происходит то, что templateEngine разделяет html, который кажется на самом деле таким же, как и был.
В основном следуя этому руководство с memorynotfound.com
Вот мой ThymeleafConfig
@Configuration
public class ThymeleafConfig {
@Bean
public SpringTemplateEngine springTemplateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(htmlTemplateResolver());
return templateEngine;
}
@Bean
public SpringResourceTemplateResolver htmlTemplateResolver(){
SpringResourceTemplateResolver emailTemplateResolver = new SpringResourceTemplateResolver();
emailTemplateResolver.setPrefix("classpath:/templates/");
emailTemplateResolver.setSuffix(".html");
emailTemplateResolver.setTemplateMode(StandardTemplateModeHandlers.HTML5.getTemplateModeName());
emailTemplateResolver.setCharacterEncoding(StandardCharsets.UTF_8.name());
emailTemplateResolver.setCacheable(false);
return emailTemplateResolver;
}
}
Мой метод где я звоню templateEngine
@Component
public class ThymeleafEngine {
@Autowired
private SpringTemplateEngine templateEngine;
Email email = new Email();
public String process () {
Map model = new HashMap();
model.put("name", "Bob");
email.setMap(model);
Context context = new Context();
context.setVariables(email.getMap());
templateEngine.initialize();
String html = templateEngine.process("email_template", context);
return html;
}
}
Электронный объект
public class Email {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Map map;
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
}
Я больше не могу разместить код в этом посте, но HTML довольно прост, разница только в том, что $ {name} внутри тега <p>.
да, это в папке с шаблоном




<p th:text = "'Dear ' + ${name} + ','" />
должен быть в шаблоне html и НЕТ
<p>Dear ${name}, </p>
У вас есть HTML-файл в папке
templates? Это расположение по умолчанию для шаблонов Thymeleaf.