1. Función principal
El motor de plantillas Velocity implementa la reutilización de plantillas mediante #include / #parse.
Las partes comunes de una página web como la cabecera de navegación _head.htm y el pie de página con derechos de autor _footer.htm se extraen en subplantillas independientes que se importan, evitando código HTML duplicado.
2. Diferencias clave
1. #include("ruta‑del‑archivo")
Simplemente imprime el contenido original del archivo, sin interpretar las variables Velocity ($!{xxx}) dentro de la subplantilla
$!{testinclude}dentro de la subplantilla no se renderiza, se muestra literalmente la cadena$!{testinclude}- Permite cargar varios archivos a la vez:
#include("a.htm","b.htm") - Ideal para: fragmentos HTML estáticos sin variables VTL
2. #parse("ruta‑del‑archivo")
Importa la subplantilla e interpreta toda la sintaxis Velocity. Las variables enviadas desde la plantilla padre funcionan correctamente en la subplantilla.
$!{testinclude}en la subplantilla lee variables del contexto y muestra los valores proporcionados por el código backend- Solo admite una ruta de archivo, no permite importar varios archivos simultáneamente
- Ideal para: cabeceras, pies de página y otras plantillas comunes que usan variables (títulos de página, textos dinámicos de copyright…)
Fragmento de tus notas:
#include pega el código de la subplantilla sin interpretarlo, mientras que #parse ejecuta el análisis sintáctico
3. Ejemplo práctico
1. Código backend (.cs)
context.Put("testinclude", "Texto desde subplantilla:");Lenguaje del código: JavaScript (javascript)
2. Contenido de la subplantilla _footer.htm
Información de copyright $!{testinclude}
Caso ① usando #include("./themes/default/_footer.htm")
Resultado de salida en la página:
Información de copyright $!{testinclude}
La variable no se interpreta y el marcador se muestra tal cual.
Caso ② usando #parse("./themes/default/_footer.htm")
Resultado de salida en la página:
Información de copyright Texto desde subplantilla:
La variable se resuelve correctamente. Por eso en proyectos reales se prefiere #parse para cabeceras y pies de página compartidos.
4. Recomendaciones de uso
| Directiva | Escenario adecuado |
|---|---|
#include | Recursos estáticos, texto plano, fragmentos HTML sin necesidad de procesar variables |
#parse | Cabeceras, pies de página, barras laterales; plantillas con $variables, #if y demás sintaxis VTL |
💡 Norma de desarrollo:
Usa #parse para componentes comunes que puedan necesitar valores dinámicos (navegación, pie de página). Usa #include para fragmentos puramente estáticos de texto o estilos.
Reutilización de plantillas