2017-07-28 2 views
1

モジュール/ portal/web/WEB-INF/templates/email /(私が作成したサブフォルダ)の下にemail.ftlがあります。私のコントローラコードでは、EmailInfo宣言があり、email.ftlへのパスを指定したいと思います。CUBA-Platform + EmailInfo - WEB-INFの下にFTLテンプレートのパスを指定する方法は?

this tutorialを見て、私はEmailInfo宣言はこれです参照してください。

EmailInfo emailInfo = new EmailInfo(
      "[email protected],[email protected]", 
      newsItem.getCaption(), 
      null, 
      "com/company/demo/templates/news_item.txt", 
      Collections.singletonMap("newsItem", newsItem) 
    ); 

私はパスのルートから始まることを信じるように私をリードcom/からnews_item.txt開始につながる相対パスに気づきますコントローラが入っているモジュールの "src"フォルダ(私のコントローラはアプリケーションポータルにありますので、私の場合はportal/srcです)。私のテンプレートがweb/ないsrc/下にあるので、私はそうと、私のパスを指定します。エラーがスローされたよう

EmailInfo emailInfo = new EmailInfo("[email protected]", "Email Template", null, "../web/WEB-INF/templates/email/email.ftl", null, null);[/pre] 

しかし、それは、動作しませんでした:

java.lang.IllegalArgumentExceptionが:パスによってテンプレートが見つかりませんでした:../web/WEB-INF/templates/email/email.ftl

は、だから私の質問は、具体的には、「モジュール、別のサブフォルダの下に移動するには、このファイルのパスを指定する方法であり、/portal/web "?

おかげで、ミングル

== CUBA-プラットフォームフォーラムからX-投稿==答えるためCUBAプラットフォーム上のユーリーArtamonovへ

答えて

1

ありがとう:

を残念ながら、あなたは、電子メールを保存することはできませんポータル/ Webモジュール内のテンプレートは、ミドルウェア上で処理されるためです。コアモジュールのsrcフォルダに入れることをお勧めします。実際には、 "/"はフォルダではなくCLASS-PATHのルートを意味します。

https://doc.cuba-platform.com/manual-6.5/resources.htmlは私がmodules/core/src/com/example/test/email/email.ftlemail.ftlを置き、/com/example/test/email/email.ftlのパスを指定し、それが働いた:

テンプレートはEmailerのは、次のルールを使用してリソース をロードするリソース・インターフェースを使用してロードされます。

関連する問題