Ich bin dabei, meine Ansicht zu organisieren (mit spring-mvc, aber das sollte nicht viel ausmachen).
Soweit ich sehe, gibt es 6 Optionen (obwohl sie sich nicht gegenseitig ausschließen):
- Fliesen
- Sitemesh
- Freemarker
- Geschwindigkeit
<jsp:include>
<%@ include file="..">
Kacheln und Sitemesh können gruppiert werden. so kann Freemarker und Geschwindigkeit . Welches in jeder Gruppe verwendet werden soll, ist nicht Gegenstand dieser Diskussion, es gibt genügend Fragen und Diskussionen darüber.
Dies ist eine interessante Lektüre , kann mich aber nicht überzeugen, Fliesen zu verwenden.
Meine Frage ist - was geben diese Frameworks, die mit <@ include file="..">
und JSTL nicht richtig gemacht werden können . Hauptpunkte (einige aus dem Artikel entnommen):
Einschließlich Teilen von Seiten wie Kopf- und Fußzeile - es gibt keinen Unterschied zwischen:
<%@ include file="header.jsp" %>
und
<tiles:insert page="header.jsp" />
Definieren von Parametern in der Kopfzeile - wie Titel, Meta-Tags usw. Dies ist sehr wichtig, insbesondere aus SEO-Sicht. Mit den Vorlagenoptionen können Sie einfach einen Platzhalter definieren, den jede Seite definieren soll. Aber , so dass Sie in jsp mit können JSTL , mit
<c:set>
(in der einschließlich Seite) und<c:out>
(in der beiliegenden Seite)Layout-Reorganisation - Wenn Sie den Breadcrumb über dem Menü oder das Anmeldefeld über einem anderen Seitenbereich verschieben möchten. Wenn Seiteneinschlüsse (mit JSP) nicht gut organisiert sind, müssen Sie in solchen Fällen möglicherweise jede einzelne Seite ändern. Wenn Ihr Layout jedoch nicht zu komplex ist und Sie die allgemeinen Elemente in Kopf- / Fußzeilen einfügen, müssen Sie sich keine Sorgen machen.
Kopplung zwischen den gemeinsamen Komponenten und dem spezifischen Inhalt - ich finde kein Problem damit. Wenn Sie ein Fragment wiederverwenden möchten, verschieben Sie es auf eine Seite, die keine Kopf- / Fußzeile enthält, und fügen Sie es bei Bedarf ein.
Effizienz -
<%@ include file="file.jsp" %>
ist effizienter als alles andere, da es einmal kompiliert wird. Alle anderen Optionen werden viele Male analysiert / ausgeführt.Komplexität - Alle Nicht-JSP-Lösungen erfordern zusätzliche XML-Dateien, zusätzliche Includes, Vorprozessorkonfigurationen usw. Dies ist sowohl eine Lernkurve als auch die Einführung potenzieller Fehlerquellen. Außerdem wird der Support und das Ändern mühsamer - Sie müssen eine Reihe von Dateien / Konfigurationen überprüfen, um zu verstehen, was passiert.
Platzhalter - geben Velocity / Freemarker mehr als JSTL? In JSTL fügen Sie Platzhalter ein und verwenden das Modell (von Controllern im Anforderungs- oder Sitzungsbereich platziert), um diese Platzhalter zu füllen.
Überzeugen Sie mich also, dass ich eines der oben genannten Frameworks anstelle von / zusätzlich zu einfachem JSP verwenden sollte.