1. Rôle principal
Le moteur de template Velocity réalise la réutilisation de templates grâce à #include / #parse.
Les parties communes d’une page web comme l’entête de navigation _head.htm ou le pied‑de‑page avec mentions légales _footer.htm sont extraites dans des sous‑templates séparés et importés, afin d’éviter des blocs HTML dupliqués.
2. Différences essentielles
1. #include("chemin‑du‑fichier")
Affiche le contenu brut du fichier tel quel, sans interpréter les variables Velocity ($!{xxx}) présentes dans le sous‑template
$!{testinclude}dans le sous‑template n’est pas résolu ; la chaîne littérale$!{testinclude}est affichée- Prend en charge plusieurs fichiers à la fois :
#include("a.htm","b.htm") - Convient pour : fragments HTML statiques sans aucune variable VTL
2. #parse("chemin‑du‑fichier")
Importe le sous‑template et interprète l’intégralité de la syntaxe Velocity. Les variables transmises depuis le template parent fonctionnent dans le sous‑template.
$!{testinclude}dans le sous‑template lit les variables du contexte et affiche les valeurs fournies par le code backend- Accepte un seul chemin de fichier ; plusieurs imports simultanés ne sont pas autorisés
- Convient pour : entêtes, pieds‑de‑page et autres templates communs qui utilisent des variables (titres de page, mentions légales dynamiques…)
Extrait de vos notes :
#include colle simplement le code du sous‑template sans l’interpréter, tandis que #parse réalise l’interprétation syntaxique
3. Exemple concret
1. Code backend (.cs)
context.Put("testinclude", "Texte issu du sous‑template :");Langage du code : JavaScript (javascript)
2. Contenu du sous‑template _footer.htm
Mentions légales $!{testinclude}
Cas ① avec #include("./themes/default/_footer.htm")
Résultat affiché sur la page :
Mentions légales $!{testinclude}
La variable n’est pas interprétée ; l’espace réservé s’affiche tel quel.
Cas ② avec #parse("./themes/default/_footer.htm")
Résultat affiché sur la page :
Mentions légales Texte issu du sous‑template :
La variable est correctement résolue. C’est pourquoi on préfère #parse pour les entêtes et pieds‑de‑page communs dans les projets réels.
4. Recommandations d’usage
| Directive | Cas d’usage |
|---|---|
#include | Ressources statiques, texte brut, fragments HTML sans besoin de résoudre des variables |
#parse | Entêtes, pieds‑de‑page, barres latérales ; templates contenant $variables, #if et autres syntaxes VTL |
💡 Règle de développement :
Utilisez systématiquement #parse pour les composants communs susceptibles d’utiliser des variables dynamiques (navigation, mentions légales). Réservez #include aux fragments purement statiques.
Réutilisation de templates