Thymeleaf legt großen Wert auf "natürliches Templating", was bedeutet, dass alle Vorlagen bereits gültige XHTML-Dateien sind. Ich dachte immer, dass das ein großer Schritt vorwärts ist, dass ich Fragmente in meinen Vorlagen erzeugen kann, z. in JSP würde ichWie behandelt man Code-Duplikation beim natürlichen Templaten (z. B. Thymeleaf)?
<tagfile:layout title="MyPageTitle">
<jsp:body>
Main content goes here
</jsp:body>
</tagfile:layout>
Meine an der richtigen Stelle „Layout“ -Tagfile enthält alle Header-Tags (Titel, Link zu Stylesheets, ...), das Menü und justs Einsätze Titeltext und Körper schreiben . Ich muss nichts über Stylesheet-Menüs oder ähnliches wissen, wenn ich mein HTML-Layout entwerfe.
Dies steht im Gegensatz zu der Idee von Thymeleaf, die mich ermutigt, vollständige HTML-Seiten (einschließlich eines Beispielmenüs und aller Überschriften) zu erstellen. Während die Anleitung Thymeleaf betonen weiterhin, wie groß das ist, fügt er nie mit Doppel Code betrifft:
- Ich habe eine Vorlage, die ein Menü erzeugt und alle meine anderen Vorlagen eine Kopie enthalten (könnte viele) & Einfügen Dummy-Menü nur so, dass ich die Vorlage in einem Browser ohne die serverseitige Generation Mechanismus anzeigen kann. Wenn ich 100 Vorlagen habe, bedeutet das, dass genau das gleiche Dummy-Menü 100x (in jeder Vorlage) existiert. Wenn ich das Aussehen des Menüs ändere, ist es nicht mit dem Erstellen eines neuen Dummy-Menüs fertig, aber ich muss & kopieren das neue Dummy-Menü in 100 Vorlagen einfügen.
- Auch wenn ich mich entscheide, etwas so einfaches wie das Umbenennen meiner CSS-Datei zu tun, muss ich auch alle meine Vorlagen berühren.
- Es besteht immer die Gefahr, dass meine Vorlage in meinem Browser gut aussieht, aber die generierte Ausgabe ist kaputt, weil ... nun ... ich es kaputt gemacht habe (könnte so einfach wie ein falsch geschriebener Variablenname sein). Daher muss ich die Ausgabe trotzdem mit der aktuellen Generation testen.
Habe ich etwas falsch verstanden? Oder ist das tatsächlich ein Kompromiss? Wie minimieren Sie die Auswirkungen der Code-Duplizierung?