Sintaxe básica de templates

I. Passar objetos de entidade para o template

1. Classe de entidade PageInfo

Até agora passávamos apenas strings simples. Essa abordagem é ineficiente e dificulta a manutenção. Empacotar dados em objetos de entidade deixa o código muito mais intuitivo.

public class PageInfo
{
    private bool IsShowImage;
    public bool IsShowImage1
    {
        get { return IsShowImage; }
        set { IsShowImage = value; }
    }
}Code language: C# (cs)
  • Campo privado IsShowImage, exposto pela propriedade pública IsShowImage1
  • Acesso dentro do template: $info.IsShowImage1

2. Preencher dados do contexto

//Container de contexto do template
IContext context = new VelocityContext();

PageInfo pi = new PageInfo();
pi.IsShowImage1 = true;

//Armazenar objeto pi com a chave info no contexto
context.Put("info",pi);

//Exemplo de variável string
context.Put("infotitle","Olá");Code language: C# (cs)

context.Put("nomeChave",dados):envia dados para o template, o template lê os dados usando $nomeChave.

II. Sintaxe principal do template Velocity

1. Marcador de diretiva #

Instruções iniciadas com # são diretivas. As mais comuns:
#if, #else, #end, #foreach, #set, #include

Exemplo de renderização condicional:

Prepare duas imagens e coloque‑as na pasta Contents/Images na raiz do site. Altere o valor de IsShowImage1 para exibir imagens diferentes.

#if($info.IsShowImage1)
    <img src="./Contents/Images/a.gif" />
#else
    <img src="./Contents/Images/b.gif" />
#endCode language: PHP (php)

Lógica: exibe a.gif quando IsShowImage1=true, senão exibe b.gif

2. Marcador de variável $

  • $nomeVariavel:exibe valor da variável
  • ${nomeVariavel}delimita o limite da variável (muito importante!)

Cenário: texto logo após a variável, o motor não consegue identificar onde termina o nome da variável.

Forma incorreta: $infotitlefoxdevelop.com
O motor interpreta tudo como variável infotitlefoxdevelop, que não existe.

Forma correta: ${infotitle}foxdevelop.com
O motor resolve a variável infotitle e concatena a string foxdevelop.comCode language: PHP (php)

3. Modificador de saída silenciosa !$!nomeVariavel

Comportamento padrão: se a variável não existir, o texto bruto $nomeVariavel é impresso na página
$!nomeVariavel:retorna conteúdo vazio quando variável não existe ou é nula, sem imprimir o cifrão

Exemplo comparativo:

SintaxeVariável existe(valor=”Olá”)Variável inexistente
$infotitleOlá$infotitle
$!infotitleOlá(vazio, nada é exibido)
${infotitle}Olá${infotitle}
$!{infotitle}Olávazio

Código de teste completo:

${infotitle}foxdevelop.com <br/>
$!infotitlefoxdevelop.com <br/>
$infotitle <br/>
$!infotitle <br/>Code language: HTML, XML (xml)

Resumo

  1. Sempre envolva variável com ${variavel} quando for concatenar texto depois dela
  2. Prefira usar $!{nomeVariavel} em ambiente de produção, evita que valores nulos imprimam $xxx e quebrem o layout
  3. Ao testar propriedade booleana com #if, escreva diretamente #if($info.IsShowImage1), não é necessário escrever ==true

Sintaxe básica de templates

Deixe um comentário

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