Как зарегистрироваться на сайте thymeleaf? - PullRequest
0 голосов
/ 28 января 2019

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

user.getUsername () user.getActivationCode ()

в моем случае они возвращаются в одной форме, они не выдают значение пользователя, которому они соответствуют

public void addUser(User user) throws Exception {
    User userFromDb = repository.findByUsername(user.getUsername());
    if (userFromDb != null) {
        throw new Exception("User exist");
    }
    user.setRoles(new String[]{"USER"});
    user.setActive(false);
    user.setActivationCode(UUID.randomUUID().toString());
    repository.save(user);

    if (!org.springframework.util.StringUtils.isEmpty(user.getEmail())) {
        //TODO: move to template
        String message = String.format(
                "Hello," + user.getUsername() + "!\n" + "Welcome. Please, visit http://aa/activate-account/%s",
                user.getActivationCode());
        mailSenderService.send(user.getEmail(), "Activation code", message);
    }
}

Hello Dear ${user.getUsername}
Welcome. Please, visit http://aa.ru/activate-account/%s
%{user.getActivationCode()}
Thanks

my thymeleaf

Я пытаюсь прочитать этот файл через Context и отправить как сообщение в методе отправки

 public void send(String emailTo, String subject, String message){
    SimpleMailMessage mailMessage = new SimpleMailMessage();
    mailMessage.setFrom(username);
    mailMessage.setTo(emailTo);
    mailMessage.setSubject(subject);
    mailMessage.setText(message);
    mailSender.send(mailMessage);
}

я получаю

Hello Dear ${user.getName()}

Добро пожаловать,Пожалуйста, посетите http://aa.ru/activate-account/%s% {user.getActivationCode ()} Спасибо

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
    <relativePath/>
</parent>
  <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>



  <!DOCTYPE html>

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<p>Hello Dear,laza</p><p>Welcome.Please visit, http://aa.ru/activate-account/199572cc-17fe-4412-be7b-e54568b0cdb1</p><p> Thanks</p> </body> </html> это то, что приходит мне по почте с тегами

Я что-то получаю, но я получаю весь HTML-код, потому что я использую Contex, как я могу обойти это?

1 Ответ

0 голосов
/ 29 января 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,' + user.getUsername}">
      Hello Dear John Doe
    </p>
    <p th:text="${'Welcome.Please visit, http://aa.ru/activate-account/' + user.getActivationCode}">
      Welcome. Please visit http://aa.ru/activate-account/blahblah
    </p>
    <p>
      Thanks
    </p>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...