2010-04-10 12 views
6

Ich bin auf der Suche nach einer Vorlage-Engine. Anforderungen:Vorlage Motor Empfehlungen

  • Läuft auf einer JVM. Java ist gut; Jython, JRuby und dergleichen, auch ...
  • Kann außerhalb von Servlets verwendet werden (im Gegensatz zu JSP)
  • Ist flexibel wrt. wo die Vorlagen gespeichert werden (JSP und viele Leute benötigen die Vorlagen im FS gespeichert werden). Es sollte eine Vorlage Ladeschnittstelle bereitzustellen, die eine wie die
  • Einfache Aufnahme von parametrisierte Vorlagen- implementieren oder etwas kann ich wirklich wie JSP Tag-Fragmente
  • Gut docs, schöne Code usw., die üblichen Verdächtigen

Ich habe JSP betrachtet - es ist fast perfekt, mit Ausnahme der Servlet und Dateisystemkopplung, StringTemplate- Ich liebe die Template-Syntax, aber es scheitert an der Dateisystemkopplung, die Dokumentation fehlt und Vorlagengruppen und Sachen sind verwirrend, GXP, TAL usw.

Ideen, Gedanken?

+0

mögliche Duplikate von [Vorschläge für eine Java-basierte Templating-Engine?] (Http://StackOverflow.com/questions/174204/Suggestions-for-Java-Based-Templating-Engine) – ripper234

Antwort

2

Wie wäre es mit Velocity?

  • voll Java
  • nicht Servlets benötigen
  • hat Datei, Glas, Classpath & URL Ressourcenlader (und vielleicht auch mehr)
  • Vorlagen können andere Vorlagen enthalten (wenn das ist, was du meinst)
  • gute Tutorials hat, konnte ich bisher bekommen, was ich von dem docs benötigen
2

Wenn mein Gedächtnis nicht täuscht, FreeMaker ist anständig - Angenommen, eine Art "Geschwindigkeit, die nächste Generation" zu sein.

0

vielleicht check out "JSTP", http://jstp.sourceforge.net/manual.html

seine Syntax Teilmenge von JSP ist daher IDE-Unterstützung ist ausgezeichnet.

Eine "JSTP" Vorlage wird zur Build-Zeit in eine Plain-Java-Klasse übersetzt. Es gibt keine Laufzeitabhängigkeit.

"Parameter" zu einer Vorlage sollten von Mitgliedsfeldern übergeben werden. statisches Tippen den ganzen Weg.

Bar.jstp

<%!           
    public String name;      
%> 

Hello <%= name %> 

build wandelt es in Bar.java

public class Bar           
{              
    public String name;         
    public void render(java.io.PrintWriter out)   
    {             
     out.print("Hello ");        
     out.print(String.valueOf(name));     
     ...            
    }             
} 

und Sie berufen sich auf die Vorlage von

Bar bar = new Bar();        
bar.name = "John";        
bar.render(..);  

mit typischen "Hotswap" sollte man nicht muss beim Bearbeiten der Vorlage neu gestartet werden.

0

Was ist mit Snippetory?

  • Es ist voll java, (sogar Ihre Logik in Java geschrieben!)
  • Vorlagen von den UriResolver geladen werden, mit Implementierungen für calsspath, Dateisystem und URL.
  • Es kann außerhalb Servlets, zum Beispiel als Ad-hoc-Vorlage wie String.format verwendet werden.
  • Es basiert vollständig auf parametrisierte Aufnahme von Vorlagen.
  • Die Dokumente sind in Ordnung und es ist viel einfacher als die Skript-basierten Engines, so dass Sie wirklich nicht so viel brauchen.
  • und eine neue Version mit great new freatures wird bald kommen, ich glaube,
0

Mixer2 Versuchen. http://mixer2.org/ Mixer2 hat keine Abhängigkeit für Servlet-API. Sie können die Vorlage in String, java.io.File und java.io.InputStream speichern.

0

Chunk, meine No-Nonsense-Template-Engine für Java, wäre eine gute Wahl.

  • Leichtgewicht.
  • Große Dokumentation mit Beispielen und Rezepten: http://www.x5software.com/chunk
  • Standalone - keine Servlets erforderlich.
  • Vorlagen aus Dateisystem, Klassenpfad, Zeichenfolgen, a webserver, or write your own template provider.
  • Basierend auf einfachen Vorlagen mit {$ tags}.
  • Vorlagen können andere Vorlagen enthalten oder sie sogar als Makros mit einem json-formatierten Wörterbuch von Tag-Werten ausführen.
  • Schleifen, Conditionals, Filter, all die typischen Leckereien.
0

Ich bin der Autor von Pebble, die Ihren Kriterien ziemlich gut entspricht.

+0

Ich schlage vor, warum zu erläutern Diese Bibliothek würde für den Benutzer funktionieren, zu dieser Zeit ist dies im Grunde eine Link-Only-Antwort, die als geringe Qualität angesehen wird. – Taryn