Ja, ich weiß, dass dies has be fragte vor . Aber die meisten Fragen waren vor zwei Jahren, und heute muss es eine bessere Antwort geben.
Ich brauche eine Template-Sprache zum Rendern von HTML. Anforderungen:
Muss von Java aus aufgerufen werden können.
Darf nicht Freemarker, Velocity oder StringTemplate sein. Wir benutzen Freemarker seit einem Jahr und es ist zu langsam. Es verbraucht 50% unserer CPU-Zyklen unter Last. Geschwindigkeit ist schlechter als Freemarker und StringTemplate hat eigene Probleme.
Es muss JSON oder sein Java-Äquivalent, d. h. Maps, Listen und Primitive, enthalten.
Ich fange an, Node.js zu beneiden. Es gab eine Menge Template-Aktivitäten für Javascript im letzten Jahr, aber wenig für Java (von denen ich weiß).
Die ideale Sprache würde aussehen wie Liquid , die nur für Rails existiert.
Jade existiert für Java, aber ich möchte nicht die ganze HTML Neuformatierung, die damit einhergeht.
Aktualisieren
Ich entschied mich schließlich für Lenker , was auch Verfügbar für Java . Beide funktionieren großartig.
Chunk ist json-freundlich. JSON kann als Tag-Wert in Ihrem Controller-Code oder in den Vorlagen selbst für Exec / Makro-Aufrufe verwendet werden.
%Vor%Oder verwenden Sie einfach die innere Vorlage und injizieren Sie den JSON von der Java-Seite.
src / themes / example.chtml
%Vor%MyController.java
%Vor%Solange die Methoden getJsonXXX () etwas zurückgeben, das List und Map implementiert, wird Chunk es korrekt in die Vorlage einkleben (auch wenn diese Listen und Maps mehr Listen und Maps verschachteln).
Ausgabe:
%Vor%Java + ist eine einfache Präprozessor-Lösung. Es schreibt nur Markup:
%Vor%Es verfügt über konfigurierbare Trennzeichen und übergibt Java-Code, anstatt es zu konsumieren:
%Vor%Referenzen
Tags und Links java templates freemarker velocity stringtemplate