Как передать значение в HTML? - PullRequest
0 голосов
/ 30 января 2019

при регистрации текст, который я сохраняю в html, отправляется на почту, я хочу, чтобы значения пользователя были назначены этим значениям, а текст был отправлен

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:remove="all">Template for HTML email</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>

    <p th:text="${'Hello Dear,' + ${name}}">
    Hello Dear John Doe`</p>`


    <p th:text="${'Welcome.Please visit, http://aa.ru/activate-account/' + ${activationCode}}">
    Welcome. Please visit http://aa.ru/activate-account/%s
    </p>
<p>
      Thanks

    </p>
</body>
</html>
        private TemplateEngine springTemplateEngine  = new TemplateEngine();
        Context context = new Context();
        context.setVariable("name",user.getUsername());
            context.setVariable("activationCode",user.getActivationCode());

        String text = springTemplateEngine.process("email-template.html",context);
        if (!org.springframework.util.StringUtils.isEmpty(user.getEmail())) 
        {

            mailSenderService.send(user.getEmail(), "Activation code", text);
        }

здесь на почту должно прийти сообщение Здравствуйте, дорогой Самир Добро пожаловать. Пожалуйста, посетите, http://aa.ru/activate-account/blabla

cant find template

enter image description here

templateResolver.setResolvablePatterns(Collections.singleton("html/*"));
    templateResolver.setPrefix("/templates/");
    templateResolver.setSuffix(".html");

enter image description here

enter image description here

enter image description here

enter image description here

1 Ответ

0 голосов
/ 30 января 2019

Я считаю, что проблемы заключаются в этой строке.

private TemplateEngine springTemplateEngine  = new TemplateEngine();

Похоже, вы создаете новый шаблонизатор без какой-либо конфигурации.Обычно, когда я отправляю электронные письма в своих проектах, я использую шаблонизатор, который я настроил в своем классе MvcConfig.Итак, во-первых, позвольте мне показать вам мой класс MvcConfig.

Config

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Bean
    @Description("Thymeleaf template resolver serving HTML 5")
    public ClassLoaderTemplateResolver templateResolver() {
        ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setPrefix("templates/");
        templateResolver.setCacheable(false);
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCharacterEncoding("UTF-8");
        return templateResolver;
    }

    @Bean
    public ServletContextTemplateResolver servletContextTemplateResolverResolver() {
        final ServletContextTemplateResolver resolver =
                new ServletContextTemplateResolver();
        resolver.setPrefix("/WEB-INF/templates/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("HTML5");
        resolver.setCacheable(false);
        resolver.setCharacterEncoding("UTF-8");
        return resolver;
    }

    @Bean
    @Description("Thymeleaf template engine with Spring integration")
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.addTemplateResolver(new UrlTemplateResolver());
        templateEngine.addDialect(new SpringSecurityDialect());
        templateEngine.setTemplateResolver(templateResolver());
        return templateEngine;
    }


    @Bean
    @Description("Thymeleaf view resolver")
    public ViewResolver viewResolver() {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setCharacterEncoding("UTF-8");
        return viewResolver;
    }

}

Теперь, когда я отправляю и отправляю электронную почту, я использую следующие строки.Как видите, я загружаю шаблонизатор, который я настроил в своем классе MvcConfig.Возможно, это может быть причиной вашей ошибки.

MvcConfig config = new MvcConfig();
TemplateEngine templateEngine = config.templateEngine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...