1. Função principal
O motor de templates Velocity implementa a reutilização de templates por meio de #include / #parse.
Partes comuns das páginas web, como a navegação do cabeçalho _head.htm e o rodapé com direitos autorais _footer.htm, são extraídas em subtemplates independentes e importadas dentro das páginas, evitando a repetição de código HTML em vários locais.
2. Principais diferenças entre os dois comandos
1. #include("caminho‑do‑arquivo")
Apenas exibe o conteúdo original do arquivo, sem interpretar as variáveis do Velocity ($!{xxx}) presentes no subtemplate
$!{testinclude}dentro do subtemplate não é renderizado; a string literal$!{testinclude}é exibida diretamente- Suporta carregar vários arquivos de uma vez:
#include("a.htm","b.htm") - Ideal para: HTML puramente estático e trechos estáticos sem variáveis VTL
2. #parse("caminho‑do‑arquivo")
Importa o subtemplate e interpreta completamente a sintaxe do Velocity. Variáveis enviadas pelo template pai funcionam normalmente dentro do subtemplate.
$!{testinclude}no subtemplate lê as variáveis de contexto e é substituído pelos valores enviados pelo código backend- Aceita apenas um único caminho de arquivo e não permite importar múltiplos arquivos simultaneamente
- Ideal para: templates compartilhados com variáveis, como cabeçalhos e rodapés (títulos de página, textos dinâmicos de direitos autorais etc.)
Conteúdo das suas anotações da captura de tela:
#include apenas insere o código do subtemplate no template principal sem interpretá‑lo, enquanto #parse realiza a interpretação
3. Exemplo prático
1. Código backend (.cs)
context.Put("testinclude", "Texto vindo do subtemplate:");Code language: JavaScript (javascript)
2. Conteúdo do subtemplate _footer.htm
Informação de direitos autorais $!{testinclude}
Cenário ① Usando #include("./themes/default/_footer.htm")
Resultado exibido na página:
Informação de direitos autorais $!{testinclude}
A variável não foi interpretada e o placeholder é impresso literalmente.
Cenário ② Usando #parse("./themes/default/_footer.htm")
Resultado exibido na página:
Informação de direitos autorais Texto vindo do subtemplate:Code language: JavaScript (javascript)
A variável é renderizada corretamente. Esse é o motivo pelo qual #parse é preferido para templates compartilhados de cabeçalho e rodapé nos projetos.
4. Recomendações de uso
| Comando | Cenário adequado |
|---|---|
#include | Recursos estáticos, texto puro, fragmentos HTML estáticos sem necessidade de renderização de variáveis |
#parse | Cabeçalhos, rodapés e barras laterais compartilhadas; subtemplates com $variáveis, #if e outras sintaxes VTL |
💡 Regra de desenvolvimento:
Use sempre #parse para componentes compartilhados que provavelmente precisarão de variáveis dinâmicas, como menus de navegação e rodapés de direitos autorais. Utilize #include para trechos de texto e estilos totalmente estáticos.
Reutilização de templates