• Hallo,

    ich komme eher aus der PHP-Ecke und habe gute Erfahrungen mit Template-Engines (genauer gesagt mit der Sigma Template Engine) gemacht. Jetzt wollte ich die Java-Spezialisten mal fragen, ob jemand von Euch Erfahrungen mit Template Engines in Java gemacht hat?

    Wünschenswert wäre es, wenn die Template Engine eigentlich nur aus einer Klasse bestehen würde, so wie es die Sigma tut, und keine umfangreiche Installation nötig wäre. D.h. einfach die Klasse einbinden und benutzen wäre ein Hit. Ich hab mir nämlich die Velocity Engine vom Jakarta Project angeschaut. Die scheint zwar sehr "mächtig" zu sein, nur ist das glaub ich in dem Fall, für den ich es brauchen würde, eine Kanone auf einen Spatz.

    Thanx, Maciek.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Wenn Du mich fragst, wurde Java generell als Kanone entwickelt und ist fuer Spatzen eher nicht so gut geeignet. Das betrifft nicht nur, aber auch, die Template Engines. Die meisten Java Frameworks sind halt fuer sehr grosse Applikationen ausgelegt. Daher sind die vorhandenen Loesungen generell fuer kleine - mittelgrosse Programme relativ umstaendlich zu implementieren.

    Wenn es bei dir Java sein muss, magst du es vielleicht mal mit FreeMarker versuchen? Kann ich aber nicht wirklich empfehlen, habs grad erst gefunden :)

    Eine Alternative ist vielleicht noch Helma, mit dem bei uns in der Arbeit sehr viel gemacht wird. Das ist ein Webframework (aus Oesterreich) fuer die Java Platform, das ueber Rhino mit ECMA-Script(Javascript) gecodet wird. Also mehr als nur eine Template Engine, und vielleicht mehr als du willst. Der orf.at und twoday.net (bzw. twoday.tuwien) laufen z.b damit.

  • Zitat von a9bejo

    Wenn Du mich fragst, wurde Java generell als Kanone entwickelt und ist fuer Spatzen eher nicht so gut geeignet. Das betrifft nicht nur, aber auch, die Template Engines. Die meisten Java Frameworks sind halt fuer sehr grosse Applikationen ausgelegt. Daher sind die vorhandenen Loesungen generell fuer kleine - mittelgrosse Programme relativ umstaendlich zu implementieren.

    Wenn es bei dir Java sein muss, magst du es vielleicht mal mit FreeMarker versuchen? Kann ich aber nicht wirklich empfehlen, habs grad erst gefunden :)


    auf FreeMarker sind wir in der Zwischenzeit auch gestossen. ;) Wir sind gerade am Testen, ob das für uns passt. Ich halte Java auch nicht für die optimale Lösung für die Größe dieses Projekts, aber die firmeninternen Auflagen sind die, dass wir nicht PHP benützen dürfen ...

    *** Make it idiot proof, and someone will build a better idiot. ***

  • reicht dir jsp 2.0 nicht aus?

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • Zitat von Wings-of-Glory

    reicht dir jsp 2.0 nicht aus?


    die Vorgabe ist Java ... ich mach an einem Projekt weiter, das schon in Java implementiert ist ... da gibt's also nicht viel Demokratie.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • ääh.. und? jsp fällt nicht unter java?
    ich mein ja nur, wenn es eine webapplikation ist, die nicht besonders groß vom unfang her ist, könntet ihr statt der template engine jsp 2.0 verwenden, der ja von jboss, tomcat,... unterstützt wird.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • generell kann ich als template engine die ZPT (Zope Page Templates) wärmstens empfehlen. einige leute haben sich die arbeit gemacht, das ganze für verschiedene sprachen zu implementieren, darunter: PHP, Perl, Python und auch Java:

    Zope Page Templates Reference:
    http://www.zope.org/Documentation/…n/AppendixC.stx

    ZPT (Non Zope Implementations zeigt verschiedene Implementierungen)
    http://www.zope.org/DevHome/Wikis/…s/ZPT/FrontPage

  • Danke für die Links. Diese Art der Syntax hätte den Vorteil, dass man den HTML-Code ohne Probleme z.B. mit dem DreamWeaver WYSIWYG bearbeiten kann. Das kann man bei mit dem Code in der Syntax vom FreeMarker leider nicht machen. Das wäre deswegen von Vorteile, weil sich dann auch "Nicht-Programmierer" ohne Probleme den Code anpassen könnten.

    Auf der anderen Seite macht es mich aber ein bissi nachdenklich, dass bei beiden Projekten "Java ZPT" und "JPT" sich die Aktivität (sowohl was neue Releases als auch die Aktivität in den Foren) sehr in Grenzen hält. Es macht nicht den Eindruck als ob das wirklich noch "lebende" Projekte wären ...

    EDIT: Hab gerade noch eine Template Engine auf GNU Lizenz gefunden: http://www.webmacro.org/ Kennt die jemand vielleicht?

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Nöö.. von WebMacro hab ich noch nie gehört. ZPT kommt in der Praxis sehr gut an. Da ZPT für verschiedene Programmiersprachen implementiert ist, spart man sich auch das Erlernen und Pflegen verschiedener Engines (falls man mit mehreren Programmiersprachen arbeitet). Ausserdem voll XML kompatibel.

    Ein winziger Nachteil ist, dass die meisten Implementierungen nicht exakt nach dem ZPT Standard verlaufen - manche bieten mehr, andere etwas weniger als die eigentliche ZPT. Allerdings ist daran wieder der Vorteil, dass gute Features eventuell von Zope in den Standard aufgenommen werden. Falls man sich aber strict an die Standards halten will, muss man die proprietären Attribute ja nicht verwenden. Die meisten Implementierungen erlauben zudem Verwendung von Code direkt in den Templates, zb. den Aufruf von Methoden von Objekten, die man der Engine als Variable übergeben hat. Das hat zwar Vor- und Nachteile (Security, keine strikte Trennung von Code und Design), allerdings erspart man sich so das bedingte Zuweisen von Variablen an die Engine. In meinem jetzigen Projekt wird die abfrage der Permissions eines User in die Templates ausgelagert - dadurch entsteht eine codeersparnis von mehr als 90%, weil man keine conditions im Code mehr benötigt. Statt dessen werden die (XHTML-)Templates an die Permissions angepasst. Aus persönlicher Erfahrung kann ich dir zu ZPT nur raten!

    EDIT:
    Hab mir kurz WebMacro angesehen.. habe mir zwar noch keine prof. Meinung darüber gebildet, aber alleine die Tatsache, dass es eine eigene Scripting Language implementiert hat, verfehlt den Sinn und Zweck einer Template Language. Die Implementierung von Sprachkonstrukten geht bei ZPT perfekt über XML elemente/attribute/namespaces.
    Ausserdem finde ich folgenden Eintrag "I just upgraded to the latest WebMacro release, and now nothing works!" in der FAQ nicht besonders vertrauenserweckend, bzgl. Stabilität der API.
    Weiters werden Direktiven (if, else, for, etc..) der Scripting Languages mit einem # eingeleitet - Wenn du dann ein HTML-Template in einen Browser ladest, dann siehst du diese unschönen Codeteile. Bei ZPT hingegen werden attribute, die vom Browser nicht erkannt werden erst gar nicht angezeigt und außerdem kannst du für jedes HTML Element, dessen Inhalt variabel ist, einen Defaultwert definieren, der im Browser allerdings angezeigt wird. So kannst du dir bereits mit ZPT ein HTML-Template zusammenbasteln, im Browser überprüfen ob alles passt, und dann den Feed per Template Engine / Datenbank, etc. vornehmen.

    So.. genug gelabert :)

  • Danke für das Feedback. Die Probleme mit dem "extra Code" sehe ich auch, nur sehe ich bei den Java ZPT Engines ein gravierendes Problem: Beide Projekte scheinen mehr oder minder tot zu sein, soweit ich das von den Datumsangaben sehen kann. Jetzt kann man sagen, dass es dafür zwei prinzipielle Möglichkeiten geben könnte:

    1) Die Implementierung ist so genial, dass es nix zu ändern gibt und alles sind superglücklich damit.
    2) Da hat sich jemand ein bissi rumgespielt und es aufgegeben. Irgendwenn anderen interessiert es offensichtlich auch nicht genug, dass er da weitermachen würde.

    *** Make it idiot proof, and someone will build a better idiot. ***

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!