Reutilização de templates

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

ComandoCenário adequado
#includeRecursos estáticos, texto puro, fragmentos HTML estáticos sem necessidade de renderização de variáveis
#parseCabeç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

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *