Невозможно установить переменную в шаблон thymeleaf

#java #spring-boot #thymeleaf

#java #весенняя загрузка #thymeleaf

Вопрос:

Я должен отправить электронное письмо с шаблоном thymeleaf внутри, но я получаю четкий HTML-код без необходимого параметра (ссылка). В чем моя ошибка?

Метод:

 private void sendLetter(User user, String subject, String link, String templatePath, Locale locale) {
    Context ctx = new Context(locale);
    ctx.setVariables(Collections.singletonMap("link", link));
    String htmlContent = templateEngine.process(templatePath, ctx);
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    try {
        MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
        message.setTo(user.getEmail());
        message.setFrom(emailProperties.getFrom());
        message.setSubject(subject);
        message.setText(htmlContent, true);
    }
    catch (MessagingException e) {
        e.printStackTrace();
    }

    javaMailSender.send(mimeMessage);
}
 

Themeleaf:

 <a class="main_button" href="${link}">
 

Комментарии:

1. Не могли бы вы уточнить свой вопрос — как вызывается частный метод, каковы параметры, что находится в ${link} и что вы ожидаете получить

2. @GabiM Я хочу получить значение входной ссылки в href, вместо ${link}

3. Получаете ли вы какое-либо исключение?

4. @RajaAnbazhagan нет, просто html

Ответ №1:

Вам нужно использовать th:href вместо href .

Измените свой код с

 <a class="main_button" href="${link}">
 

Для

 <a class="main_button" th:href="${link}">