Gibt es eine Möglichkeit Spring Thymeleaf zu einer String-Vorlage zu verarbeiten?

8

Ich möchte etwas schreiben wie:

%Vor%

Die Methode [process] kann das standardmäßig nicht tun. Ich kann aus den Dokumenten verstehen, dass ich einen speziellen Template Resolver benötige:

Um Templates auszuführen, wird die Methode process (String, IContext) verwendet: final String Ergebnis = templateEngine.process ("meinTemplate", ctx); Das String-Argument "meinTemplate" ist der Vorlagenname und bezieht sich auf den physischen / logischen Speicherort der Vorlage selbst, wie im Vorlagen-Resolver / s konfiguriert.

Kann jemand mein Problem lösen?

Das Ziel besteht darin, die Thymeleaf-Templates (Dateien) in Strings zwischenzuspeichern und dann diese Strings und nicht die Dateien zu verarbeiten.

    
Serge Tahé 03.04.2014, 07:12
quelle

4 Antworten

4

Sie können Ihre eigenen TemplateResolver und IResourceResolver implementieren, um mit String zu arbeiten.

    
michal.kreuzman 28.04.2014, 11:44
quelle
9

Die von uns verwendete Lösung bestand aus einem neuen IResourceResolver mit einem benutzerdefinierten Context anstelle eines benutzerdefinierten TemplateResolver . Wir haben dies gewählt, weil wir in den meisten Fällen immer noch Klassenpfad-Scans verwenden wollten, aber gelegentlich dynamischen Inhalt hatten.

Das Folgende zeigt, wie wir es gemacht haben:

%Vor%

Testfall

%Vor%

Dummy-Vorlagedatei unter src / main / resources / mail / dummy.html

%Vor%

Hinweis: Wir verwendeten Apache CommonsIOs IOUtils , um den String in einen InputStream zu konvertieren

    
David Welch 07.11.2014 18:44
quelle
4

für einfache Unit Tests:

%Vor%

oder einfach org.thymeleaf.templateresolver.StringTemplateResolver in Thymeleaf 3 verwenden

    
Stefan K. 03.03.2016 20:21
quelle
0

Yep StringTemplateResolver ist der Weg zu gehen.

%Vor%

}

    
Bill Comer 08.12.2017 15:35
quelle

Tags und Links