this tutorialに従うことで、Thymeleafテンプレートエンジンを使用してHTML電子メールを作成しようとしています。SpringTemplateEngine.processがファイルを読み込めません。
私はテンプレートの設定を作成しました:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.nio.charset.StandardCharsets;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.templatemode.TemplateMode;
@Configuration
public class ThymeleafTemplateConfiguration {
@Bean
public SpringTemplateEngine springTemplateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(htmlTemplateResolver());
return templateEngine;
}
@Bean
public SpringResourceTemplateResolver htmlTemplateResolver(){
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setPrefix("/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding(StandardCharsets.UTF_8.name());
return templateResolver;
}
}
とHTMLテンプレート:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>This is the body to be changed</p>
<p>This is a name: ${name}</p>
</body>
</html>
は、それから私は、テンプレートを移入しよう:
むしろより取得入力されたテンプレート、私はちょうど私がプロセスに入れた最初のパラメータを取得しています:
>>> my name
私は間違っていますか?なぜプロセスは、指定された接頭辞と接尾辞を持つファイルを読み込むのではなく、そのままパラメータを取りますか? (/templates/index.html)
はあなたが投稿できる新しいインスタンスにつまり、あなたが
bean
作成と同じようaddTemplateResolver
をこのインスタンスを作成します。あなたのプロジェクトの完全なディレクトリ構造ですか? – oak