0

thymeleaf を使用して html テンプレートを読み取り、変数を置き換えてから電子メールとして送信しようとしています。ただし、html テンプレート ファイルの読み取りの部分で立ち往生しています。

これは私が得るエラーです:

The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>org.thymeleaf.exceptions.TemplateInputException: Error resolving template &quot;invitationemail&quot;, template might not exist or might not be accessible by any of the configured Template Resolvers
    org.thymeleaf.TemplateRepository.getTemplate(TemplateRepository.java:247)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1192)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1148)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1095)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1008)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:982)
    yesterscape.ses.SESManagement.sendInvitationEmail(SESManagement.java:69)
    yesterscape.users.InviteUserServlet.doPost(InviteUserServlet.java:68)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

したがって、invitationemail.html ファイルを適切に設定していないためだと思います。

これは、電子メールを読んで値を変更するコードです。

ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setTemplateMode("HTML5");
resolver.setSuffix(".html");
TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(resolver);
final Context context = new Context(Locale.US);
context.setVariable("name", nameFrom);
final String htmlVer = templateEngine.process("invitationemail", context);

ご覧のとおり、接尾辞を .html に設定し、処理するファイルの名前に「invitationemail」と入力しています。しかし、それでも見つかりません。

サーブレット アーキテクチャのどのフォルダーに、invitationemail.html ファイルを含める必要がありますか? WEB-INF フォルダーにあるはずだと思っていましたが、現在はここにありますが、まだ運がありません。

あなたが提供できるあらゆる支援についてのアドバイスに感謝します。

4

2 に答える 2

2

ClassLoaderTemplateResolver次のように別のITemplateResolver実装を使用する代わりに

ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("/WEB-INF/template/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
// ... etc

そして、メールテンプレートを/WEB-INF/templateフォルダーに入れます..

于 2013-04-08T13:37:13.313 に答える