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 ich
schreiben %Vor%Meine "Layout" -Tagdatei enthält alle Header-Tags (Titel, Link zu Stylesheets, ...), das Menü und fügt den Text und den Text an der richtigen Stelle ein. Ich muss nichts über Stylesheet-Menüs oder ähnliches wissen, wenn ich mein HTML-Fragment entwerfe.
Dies steht im Gegensatz zu der Idee von Thymeleaf, die mich ermutigt, vollständige HTML-Seiten zu erstellen (einschließlich eines Beispielmenüs und aller Überschriften). Während das Handbuch von Thymeleaf weiterhin hervorhebt, wie groß das ist, handelt es sich nie um doppelte Code-Bedenken:
Habe ich da etwas falsch verstanden? Oder ist das tatsächlich ein Kompromiss? Wie minimieren Sie die Auswirkungen der Code-Duplizierung?
Natürliche Vorlagen sind nur eine Option in Thymeleaf. Wie Sie hier Ссылка lesen können, gibt es viele Möglichkeiten, einschließlich eines hierarchischen Layout-Ansatzes wie dem, den Sie bevorzugen (ich empfehle Sie sehen sich den Layout-Dialekt an.
Natürliche Vorlagen sind jedoch die bevorzugte und am meisten erklärte Layout-Option, weil Thymeleaf von Grund auf so konzipiert wurde, dass Sie statische Prototypen erstellen können (im Gegensatz zu den meisten anderen Template-Engines). Aber es zwingt dich nicht dazu.
Also ... wie werden Natural Templates in der realen Welt angewendet um zu vermeiden, dass Code Duplikation ein Problem wird? Das hängt von dem Szenario ab, aber ein Muster, das wir oft wiederholen, ist das Erstellen eines vollständigen Dokuments, natürlicher Vorlagen für 3-4 oder vielleicht sogar ein Dutzend ihrer Anwendungsvorlagen, nur diejenigen, die eher am Entwurfsprozess teilnehmen - Austausch mit Designern, mit Kunden ...-, und einfach nicht die Kopf- und Fußzeilen-Duplizierung in den restlichen Vorlagen der Anwendung anwenden, was ihre Erstellung und Wartung viel einfacher macht.
Auf diese Weise können Sie das Beste aus beiden Welten haben: eine Möglichkeit, vollständig anzeigbare Seiten zwischen Programmierern, Designern und Kunden auszutauschen, für die Seiten, die wirklich relevant sind; und auch eine reduzierte Menge an doppeltem Code.
Dank Bibliotheken wie Thymol (die in dem oben verlinkten Artikel referenziert werden) können Sie sogar Code-Duplikation vollständig vermeiden, indem Sie Ihre Fragmente dynamisch über JavaScript einfügen, wenn Sie Ihre Vorlagen direkt in Ihrem Browser öffnen, ohne die Anwendung auszuführen.
Hoffe, das hilft.
Haftungsausschluss, nach StackOverflow-Regeln: Ich bin Thymelefs Autor.
Tags und Links template-engine thymeleaf