1. Kernfunktion
Die Velocity‑Template‑Engine realisiert Wiederverwendung von Templates mit #include / #parse.
Wiederkehrende Seitenteile wie die Kopf‑Navigation _head.htm oder der Fußbereich mit Copyright‑Hinweis _footer.htm werden in separate Untertemplates ausgelagert und in Seiten eingebunden. Dadurch wird doppelter HTML‑Code vermieden.
2. Wesentliche Unterschiede
1. #include("Dateipfad")
Gibt den Dateiinhalt unverändert aus, ohne Velocity‑Variablen ($!{xxx}) im Untertemplate auszuwerten
$!{testinclude}im Untertemplate wird nicht gerendert, der Text$!{testinclude}wird wörtlich ausgegeben- Unterstützt das Einbinden mehrerer Dateien auf einmal:
#include("a.htm","b.htm") - Geeignet für: statisches HTML ohne jegliche VTL‑Variablen
2. #parse("Dateipfad")
Lädt das Untertemplate und wertet die gesamte Velocity‑Syntax aus. Vom Elterntemplate übergebene Variablen funktionieren im Untertemplate.
$!{testinclude}im Untertemplate liest Kontext‑Variablen und ersetzt diese durch Werte aus dem Backend‑Code- Akzeptiert nur einen einzelnen Dateipfad; mehrere gleichzeitige Einbindungen sind nicht möglich
- Geeignet für: gemeinsame Kopf‑ und Fußtemplates mit Variablen (Seitentitel, dynamische Copyright‑Texte usw.)
Auszug aus deinen Notizen:
#include fügt den Quelltext des Untertemplates unverändert ein ohne Auswertung, #parse führt die Syntaxauswertung durch
3. Praxisbeispiel
1. Backend‑Code (.cs)
context.Put("testinclude", "Text aus Untertemplate:");Code-Sprache: JavaScript (javascript)
2. Inhalt des Untertemplates _footer.htm
Copyright‑Hinweis $!{testinclude}
Fall ① mit #include("./themes/default/_footer.htm")
Seitenausgabe:
Copyright‑Hinweis $!{testinclude}
Die Variable wird nicht ausgewertet, der Platzhalter wird wörtlich angezeigt.
Fall ② mit #parse("./themes/default/_footer.htm")
Seitenausgabe:
Copyright‑Hinweis Text aus Untertemplate:
Die Variable wird korrekt aufgelöst. Deshalb wird in Projekten für gemeinsame Kopf‑ und Fußbereiche #parse bevorzugt verwendet.
4. Empfohlene Einsatzbereiche
| Anweisung | Einsatzfall |
|---|---|
#include | Statische Ressourcen, Klartext, HTML‑Fragmente ohne Variablenauswertung |
#parse | Gemeinsame Kopf‑, Fuß‑ und Seitenleisten; Templates mit $‑Variablen, #if und weiterer VTL‑Syntax |
💡 Entwicklungsrichtlinie:
Verwende für gemeinsame Komponenten mit potenziell dynamischen Werten (Navigation, Copyright‑Bereich) durchgängig #parse. Für rein statische Text‑ und Stilfragmente nutze #include.
Template‑Wiederverwendung