Seite 1 von 1

jinja2 alike Template Engine für Java?

Verfasst: Freitag 2. Juli 2010, 14:12
von Hyperion
Hallo,

kann mir jemand eine einfache Template Engine für Java empfehlen?

Auf dieser Seite sind ja ettliche aufgeführt:
http://java-source.net/open-source/template-engines

Bevor ich die mir alle en detail angucke, dachte ich ich frage mal schnell in die Runde. Ich brauche das nur für das Erzeugen von einer Textdatei (DOT File); Vererbung wäre also nicht notwendig. Ich brauche eigentlich nur Schleifen und evtl. Bedingungen.

Da es hier durchaus kundige Java-Nutzer gibt, die dazu einen Vergleich zu jinja im Kopf haben, ist das sicherlich nicht die dümmste Idee :-)

Re: jinja2 alike Template Engine für Java?

Verfasst: Freitag 2. Juli 2010, 21:45
von Hyperion
Ich habe mir jetzt mal FreeMarker genauer angeguckt und zunächst in meinen Code integriert. Hat imho eine ganz gute Dokumentation und läßt sich sehr einfach benutzen.

Die Template-Syntax ist zwar XML, aber bei kleineren Sachen schadet das der Lesbarkeit nicht wirklich.

Da mein Template nicht sehr anspruchsvoll ist, werde ich wohl dabei bleiben :-) Das ganze ist ja auch nur ein Mini-Tool für meine Dipl.-Arbeit.

(Es wäre alles so viel einfacher gewesen, wenn es einen brauchbaren OWL-Parser für Python geben würde...)

Re: jinja2 alike Template Engine für Java?

Verfasst: Sonntag 4. Juli 2010, 10:51
von Leonidas
Du kannst auch Jinja aus Java nutzen, mit Jython könnte das womöglich sogar klappen. Dann musst du auf die Speedups verzichten aber das reicht ja auch oft schon.

Re: jinja2 alike Template Engine für Java?

Verfasst: Montag 5. Juli 2010, 20:27
von Hyperion
Leonidas hat geschrieben:Du kannst auch Jinja aus Java nutzen, mit Jython könnte das womöglich sogar klappen. Dann musst du auf die Speedups verzichten aber das reicht ja auch oft schon.
Interessante Idee! Probiere ich morgen mal aus - wenn ich denn die Zeit dazu finde ;-)
Mein Ansatz läuft jetzt ganz zufriedenstellend... da es nur ein workaround ist, reicht mir das für die Praxis. Aber für die Zukunft wäre es sicherlich gut zu wissen, ob man das realisieren kann.

Re: jinja2 alike Template Engine für Java?

Verfasst: Samstag 10. Juli 2010, 11:53
von sma
Wenn es bei den Templates auf Geschwindigkeit ankommt, wird Jinja+Jython nicht so doll abschneiden, weil Jython nicht gerade ein Renner ist. Sollte denn die Java-Template-Engine syntaktisch kompatibel zu Jinja2 sein oder gibt es einfach einen bestimmten Aspekt, auf den es ankommt? Velocity wäre eine Alternative zu Freeemarker, die nicht auf XML aufsetzt.

Oder man bastelt sich etwas ähnliches selbst. Spring 3 enthält SpEL, die Spring Expression Language, die man schon mal benutzen könnte, um alle Ausdrücke innerhalb von Interpolationen und Tags auszuwerten. Damit bleibt die Aufgabe, einen Text in statische Bestandteile, Interpolationen in {{ }} und Tags in {% %} zu zerlegen und die Tags zu implementieren. Bei den Tags sollte man zwischen "Inline" und "Block" unterscheiden. Hier ein Beispiel: http://gist.github.com/470630 Man sollte noch den PropertyResolver ändern, damit Variablen nicht alle mit "#" beginnen müssen. Außerdem habe ich keine Fehlererkennung. Statt Filter mit "|" würde ich vorschlagen, einfach Funktionen zu registrieren, also z.B. "escape(foo)" statt "foo|escape".

Stefan

Re: jinja2 alike Template Engine für Java?

Verfasst: Mittwoch 22. Dezember 2010, 02:51
von Leonidas
Ich finde es sehr amüsant dass wir in Google an Platz 6 sind, wenn man nach "Java Template Engine" sucht :) Ich habe nämlich gerade ein Ähnliches Problem wie Hyperion. Nutze Clojure und überlege ob ich eine Template-Engine für die HTML-Ausgabe mache oder stattdessen was mit ``prxml`` oder ähnlichem zusammentacker...

Edit: Ok, mit Firefox, der Google-Cookies droppt kann ich es nicht mehr nachvollziehen.

Re: jinja2 alike Template Engine für Java?

Verfasst: Mittwoch 22. Dezember 2010, 07:33
von snafu
@Leonidas: Bei mir auf Platz 8. Das hängt mit Sicherheit damit zusammen, dass Google merkt, dass deine Suchanfragen vermutlich größtenteils etwas mit Python zu tun haben und dementsprechend pythonbezogenen Ergebnissen eine gewisse Relevanz zuschreibt.

Re: jinja2 alike Template Engine für Java?

Verfasst: Mittwoch 22. Dezember 2010, 09:02
von BlackJack
Hm, bei mir ist es auf den ersten 3 Ergebnisseiten nicht dabei. Ihr verratet Google anscheinend viel zu viel über eure Vorlieben. :-)

Re: jinja2 alike Template Engine für Java?

Verfasst: Mittwoch 22. Dezember 2010, 10:11
von Hyperion
Hui... habe das ja lange nicht mehr angefasst, da meine Java-Lösung so weit funktionierte und ich mich auch andere Sachen konzentrieren musste. Ich finde die Lösung mit Jython und jinja ja nach wie vor reizvoll, zudem es bei mir nicht auf Geschwindigkeit ankommt.

Aber das google-Ranking muss ich auch mal antesten :-)

Edit: Bei mir auch Platz 8!

Re: jinja2 alike Template Engine für Java?

Verfasst: Mittwoch 22. Dezember 2010, 21:31
von snafu
BlackJack hat geschrieben:Hm, bei mir ist es auf den ersten 3 Ergebnisseiten nicht dabei. Ihr verratet Google anscheinend viel zu viel über eure Vorlieben. :-)
Man möge mich steinigen, aber ich finde es gut, dass Google in dieser Hinsicht mitdenkt. Dass da einer ständig nach Python- und Ubuntu-Themen sucht, darf Google von mir aus gerne wissen.

Re: jinja2 alike Template Engine für Java?

Verfasst: Mittwoch 22. Dezember 2010, 23:05
von BlackJack
@snafu: Mag ja sein, aber in diesem Fall denkt Google nicht wirklich mit, denn der Treffer bringt ja nix ausser der Frage, die man selber gestellt hat.