Как добавить pdfTemplateResolver для конфигурации Thymeleaf в моем приложении jhipster - PullRequest
0 голосов
/ 31 мая 2018

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

Я хочу добавить генератор PDF, для которого я буду использовать шаблоны тимелист.Поэтому я хотел бы добавить ClassLoaderTemplateResolver.У меня есть это:

@Configuration
public class ThymeleafConfiguration {

  @SuppressWarnings("unused")
  private final Logger log = LoggerFactory.getLogger(ThymeleafConfiguration.class);

  @Bean
  @Description("Thymeleaf template resolver serving HTML 5 emails")
  public ClassLoaderTemplateResolver emailTemplateResolver() {
    ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
    emailTemplateResolver.setPrefix("mails/");
    emailTemplateResolver.setSuffix(".html");
    emailTemplateResolver.setTemplateMode("HTML5");
    emailTemplateResolver.setCharacterEncoding(CharEncoding.UTF_8);
    emailTemplateResolver.setOrder(1);
    return emailTemplateResolver;
  }

  @Bean
  @Description("Thymeleaf template resolver serving HTML 5 emails")
  public ClassLoaderTemplateResolver pdfTemplateResolver() {
    ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
    emailTemplateResolver.setPrefix("pdf/");
    emailTemplateResolver.setSuffix(".html");
    emailTemplateResolver.setTemplateMode("HTML5");
    emailTemplateResolver.setCharacterEncoding(CharEncoding.UTF_8);
    emailTemplateResolver.setOrder(1);
    return emailTemplateResolver;
  }
}

Что позволяет помещать шаблоны в другой каталог.

Что мне неясно, так это как вы убедитесь, что я получил преобразователь шаблонов PDF дляPDF и преобразователь шаблонов писем для генерации писем?

1 Ответ

0 голосов
/ 31 мая 2018

Ладно, похоже, что оба выбираются автоматически.Не уверен, что произойдет, когда имя шаблона находится в обоих местах.Чтобы избежать этого, я мог бы добавить два боба так:

@Bean
public SpringTemplateEngine emailTemplateEngine() {
    final SpringTemplateEngine engine = new SpringTemplateEngine();
     final Set<TemplateResolver> templateResolvers = new HashSet<TemplateResolver>();
     templateResolvers.add(emailTemplateResolver());
     engine.setTemplateResolvers(templateResolvers);
    return engine;
}

@Bean
public SpringTemplateEngine pdfTemplateEngine() {
    final SpringTemplateEngine engine = new SpringTemplateEngine();
     final Set<TemplateResolver> templateResolvers = new HashSet<TemplateResolver>();
     templateResolvers.add(pdfTemplateResolver());
     engine.setTemplateResolvers(templateResolvers);
    return engine;
}
...