2010-06-07 4 views
24

Ich suche die Templates Engine für Java mit Syntax wie in Django Templates oder Twig (PHP). Gibt es es?Django-ähnliches Vorlagensystem für Java?

Update: Ziel ist es, die gleichen Vorlagen Dateien für verschiedene Sprachen zu haben.

können aus Python (Django) Code sowie aus PHP, mit Twig gerendert werden. Ich suche nach Java-Lösung.

Jedes andere Vorlagensystem in Java, PHP und Python ist geeignet.

+0

Ich denke, das ist eine sehr interessante Frage! Sie suchen also nach Template-Engines, die sprachenübergreifend sind, wo Sie die gleiche Vorlage verwenden können, während Sie den gesamten Rest des Tech-Stacks austauschen. – Davy8

+0

würde ich Django-like Templating-Engine LOOOVE. – drozzy

Antwort

10
+0

Sarvash, hatten Sie etwas Glück mit einem dieser Vorschläge? – bchang

+0

Es gibt einen Vergleich einiger [web templating engines] (http://en.wikipedia.org/wiki/Template_engine_%28web%29) auf Wikipedia. –

+8

Nach dem Auschecken des Jandgod-Projekts - ich habe wirklich Angst, es zu benutzen. Der Code ist schrecklich (alle Arten von magischen Zahlen, auskommentierte Abschnitte), und wurde seit Mai 2010 nicht aktualisiert. Es ist eine großartige Idee, leider schlecht umgesetzt ... – drozzy

0

Sicher, es gibt alle Arten von Template-Engines für Java. Ich habe FreeMarker, Velocity und StringTemplate verwendet. Ich bin nicht sicher, was Sie mit Django-artiger Syntax meinen; Jeder Motor hat seine eigenen Variationen eines Templating-Ansatzes.

Für einen Vergleich einiger verschiedener Motoren überprüfen Sie here.

+4

Ich bin mir ziemlich sicher, dass "Django-ähnliche Syntax" bedeutet, dass die Syntax ähnlich wie in Django ist: http://docs.djangoproject.com/en/dev/topics/templates/ – drozzy

+0

Warum zu beantworten, wenn Sie überhaupt nicht wissen worum die Frage gestellt wurde ... –

+1

Weil, als ich die Frage vor 3 Jahren beantwortete, hatte es nicht alle Details nach Update: Das Ziel ist es, gleiche ... Schauen Sie sich nur die erste Zeile von die Frage und erklären Sie mir, wie es unangemessen ist, nach mehr Informationen zu suchen? – Jeff

1

Wenn Sie die gleichen Vorlagen für verschiedene Sprachen möchten, können Sie einen Blick darauf werfen könnte bei Clearsilver.

ClearSilver ist eine sprachneutrale Vorlagen-Engine, mit der die Präsentation vom Code getrennt werden kann, indem ein sprachneutrales hierarchisches Datenformat (HDF) zwischen Code und Vorlagen eingefügt wird. Denken Sie an HDF wie XML, aber viel einfacher.

Es ist für viele hoch frequentierte Websites verwendet, einschließlich Yahoo! Gruppen, Gmail Static HTML, orkut.com, wunderground.com und andere. Implementierungssprachen, die damit verwendet werden, umfassen C/C++, Python, Java, Ruby, PHP, C# und andere. Das Python-Framework enthält auch einen Seitenklassen-Dispatcher und einfaches ORM, das ein bisschen wie Ruby-On-Rails ist, da es die Zuordnung zwischen Datenbanktabellen, HDF und Vorlagen sehr wenig Code erfordert.

Die Clearstar-Implementierung ist in C mit sprachspezifischen Wrappern enthalten. Es gibt auch eine 100% Java-Implementierung von Google und Open-Source namens JSilver.

http://www.clearsilver.net/

http://code.google.com/p/jsilver/

21

Ich habe Jtwig entwickelt. Du könntest es versuchen. Es wird in einigen Projekten erfolgreich eingesetzt. Es ist einfach zu installieren mit einer schönen Integration mit Feder webmvc.

Fügen Sie einfach die Abhängigkeit mit Maven oder einem ähnlichen System ein.

Und konfigurieren Sie die View Resolver Bean, um die Jtwig eins zurückzugeben.

@Bean 
public ViewResolver viewResolver() { 
    JtwigViewResolver viewResolver = new JtwigViewResolver(); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    viewResolver.setSuffix(".twig"); 
    return viewResolver; 
} 

Oder, wenn Sie XML-Basis-Konfigurationen verwenden:

<bean id="viewResolver" class="com.lyncode.jtwig.mvc.JtwigViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".twig"/> 
</bean> 
0

können Sie Mustache.java und Handlebars.java verwenden. Schnurrbart ist sehr minimalistisch. Lenker ist ähnlich und kompatibel mit Moustache, aber Sie können sehr einfach schreiben Sie Ihre eigenen Erweiterungen.