2009-07-27 5 views
2

Ich schreibe gerade eine Vorlage für OpenCms, ein Java-basiertes CMS mit einer sehr guten Taglib-Unterstützung und einer mächtigen API.Taglibs versus Javaclass: oder wie man beides optimal kombiniert

Wie auch immer, wenn ich Tutorials oder die Quelle anschaue, ist es etwa 50-50, dass taglibs oder Javaclasses verwendet werden, um (html) -Ausgabe zu generieren.

Ich versuche, meine JSPs sauber zu halten, was bedeutet, nicht zu viel Skriptcode (stattdessen mit JSTL und so weiter). Irgendwann könnte ich mehr Kontrolle über den Code brauchen, das waren die Java-Klassen und hier weiß ich nicht, wie weit ich gehen sollte (ich persönlich mag die Idee nicht, HTML in einer Klasse zu generieren).

Hier sind einige Vor-& Nachteile Ich obwohl haben:

  1. Mit Taglibs, ich nicht den Servlet-Container jedes Mal neu starten. Ich habe gerade meine Änderungen vornehmen und das Ergebnis
  2. A taglib siehe JSP einfacher ist, vor allem für Web-Designer zu halten, da der „gleichen“ Syntax
  3. A Java voll/mehr IDE-Unterstützung (Typ/Syntaxprüfung)
  4. bietet bei komplexeren Anforderungen ist das Javaclass-Code Reiniger (im Vergleich zu Variablen auf den Pagecontext in JSPs setzen)
  5. EL (Ausdruckssprache) in mehr Energie an die JSP/taglib, aber das ist eine andere Syntax wieder und gelernt werden muss

Gibt es irgendwelche Best-Practi ses darüber, wie man das angehen kann? Da es andere Kollegen gibt, die das wahrscheinlich in Zukunft beibehalten müssen, suche ich nach einer sauberen/wartbaren Lösung - Sie kennen wahrscheinlich alle die Situation, wenn Sie sich den Code von jemandem angesehen haben und "Was zur Hölle war er/seh Denken ";)

Antwort

0

Ich habe das in der Vergangenheit ziemlich einfach gehalten.

Verwenden Sie Taglibs, wenn der Zweck Präsentation ist. Angenommen, Sie haben einen Block von Anzeigecode, den Sie in einer Reihe von Seiten wiederverwenden werden, im Fall von StackOverflow, sagen wir den Pfeilcode. Da das nur Daten anzeigen sollte, sollte es keinen Java-Code benötigen und ich würde eine Taglib verwenden.

Verwenden Sie Java-Code, wenn Sie Daten falten müssen. Wenn Sie in einem Ressourcenbündel suchen oder etwas nicht-generische Formatierung auf etwas anwenden müssen, würde ich Java-Code verwenden, obwohl ich JSTL-Funktionen zu Tags dafür bevorzuge.

Verwenden Sie nicht beide für den Zugriff auf Datenbanken.