Warum sollte ich eine Templating-Engine verwenden? jsp include und jstl vs tiles, freemarker, velocity, sitemesh

Ich entscheide mich für eine Möglichkeit, meine Ansicht zu organisieren (mit spring-mvc, aber das sollte nicht viel ausmachen)

Soweit ich sehe, gibt es 6 Optionen (die sich jedoch nicht gegenseitig ausschließen):

Fliesen Sitemesh FreemarkerGeschwindigkei<jsp:include><%@ include file="..">

Fliesen und Sitemesh kann gruppiert werden; so kann Freemarker undGeschwindigkei. Welches in jeder Gruppe verwendet wird, ist nicht Gegenstand dieser Diskussion, es gibt genug 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, das mit @ nicht richtig gemacht werden ka <@ include file=".."> und JSTL. Hauptpunkte (einige aus dem Artikel entnommen):

Einschließlich Teilen von Seiten, wie z. B. Kopf- und Fußzeile - es gibt keinen Unterschied zwischen:

<%@ include file="header.jsp" %>

un

<tiles:insert page="header.jsp" />

Parameter in der Kopfzeile definieren - 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 kannst du in jsp mit JSTL mit<c:set> (in der inkludierenden Seite) und<c:out> (auf der beiliegenden Seite)

Layout Reorganisation - Wenn Sie den Breadcrumb über das Menü oder das Anmeldefeld über eine andere Seite verschieben möchten. Wenn die 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 übermäßig komplex ist und Sie die allgemeinen Dinge in die Kopf- / Fußzeile 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 hinzu.

Effizienz - <%@ include file="file.jsp" %> ist effizienter als alles andere, da es einmal kompiliert wird. Alle anderen Optionen werden mehrmals analysiert / ausgeführt.

Komplexitä - Für alle Nicht-JSP-Lösungen sind zusätzliche XML-Dateien, zusätzliche Includes, Vorprozessorkonfigurationen usw. erforderlich. Dies ist sowohl eine Lernkurve als auch die Einführung potenzieller Fehlerquellen. Außerdem wird die Unterstützung und das Ändern von Einstellungen dadurch mühsamer - Sie müssen eine Reihe von Dateien / Konfigurationen überprüfen, um zu verstehen, was passiert.

Platzhalter - Gibt Velocity / Freemarker mehr als JSTL? In JSTL platzieren Sie Platzhalter und füllen diese Platzhalter mit dem Modell (das von den Controllern in den Anforderungs- oder Sitzungsbereich eingefügt wurde).

So überzeugen Sie mich, dass ich eines der oben genannten Frameworks anstelle von / zusätzlich zu normaler JSP verwenden sollte.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage