2017-07-28 6 views
1

Ich habe email.ftl unter module/portal/web/WEB-INF/templates/email/(ein Unterordner, den ich erstellt habe). In meinem Controller-Code habe ich meine EmailInfo-Deklaration und möchte den Pfad zu email.ftl angeben.CUBA-Platform + EmailInfo - Wie kann ich den FTL-Template-Pfad unter WEB-INF angeben?

bei this tutorial Sehen, ich sehe die Emailinfo Erklärung hierfür ist:

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

ich den relativen Pfad bemerken führende beginnt zu news_item.txt von com/, die mich führt zu glauben, dass die Wurzel des Pfades von der beginnt "src" Ordner des Moduls, in dem sich der Controller befindet (mein Controller ist im App-Portal, also in meinem Fall portal/src). Da meine Vorlage unter web/ und nicht src/ ist, spezifiziert ich meinen Weg als so:

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

aber es hat nicht funktioniert, als ein Fehler ausgelöst wurde:

java.lang.IllegalArgumentException: Kann nicht Vorlage durch Pfad: ../web/WEB-INF/templates/email/email.ftl

Also meine Frage ist, wie dieser Dateipfad angeben, unter einem anderen Unterordner zu gehen, speziell „Module/Portal/Web "?

Danke, Mingle

== X-Gepostet von CUBA-Platform Forum ==

Antwort

1

Dank Yuriy Artamonow auf CUBA-Plattform für die Beantwortung:

Leider können Sie E-Mail nicht speichern Vorlagen in Portal/Web-Modulen, da sie auf einer Middleware verarbeitet werden. Ich empfehle, dass Sie sie in Core-Modul-Src-Ordner legen. In der Tat bedeutet "/" CLASS-PATH root, nicht den Ordner.

Vorlagen werden geladen von Emailer Ressourcen-Schnittstelle, die Ressourcen mit den folgenden Regeln lädt: https://doc.cuba-platform.com/manual-6.5/resources.html

I email.ftl unter modules/core/src/com/example/test/email/email.ftl gestellt und angegeben, den Weg der /com/example/test/email/email.ftl und es funktionierte.

Verwandte Themen