Observações complementares sobre limites de variável

Pré‑definição de variável: #set ($valok = "hello foxdevelop")

Diferenciação entre limite de variável ${} e acesso com .

CódigoResultado renderizadoExplicação do funcionamento
$valokhello foxdevelopSaída básica da variável
$valok.comhello foxdevelop.comVelocity tenta invocar o atributo ou método cn do objeto valok; a string não possui o método cn, a variável e o sufixo são exibidos exatamente como escritos
${valok}.comhello foxdevelop.com{} define o limite da variável. Após renderizar valok, o texto .com é concatenado (forma recomendada para concatenação)
$!valok.comhellofoxdevelop.com$! referência silenciosa: se a variável existir, funciona igual a $valok; se não existir, retorna uma string vazia, não exibe o texto bruto $xxx
${valok.com}vazioTenta ler o atributo valok.com. A string não tem método ou atributo com, a variável não existe. Use $!{valok.com} para obter saída vazia.


${valok}.cn ✅ Concatenação de variável com sufixo
${valok.cn} ❌ Acessa o atributo cn pertencente ao objeto valok

Aspas simples / aspas duplas & junção de variáveis com texto

CódigoResultado renderizadoExplicação do funcionamento
what$valokwhathello foxdevelopConcatenação direta, o Velocity identifica automaticamente o limite da variável
what$"valok"what$”valok”❌ Sintaxe incorreta. Não é permitido colocar aspas logo após $, a variável não será interpretada
what"$valok"what”hello foxdevelopAs aspas são apenas caracteres comuns. Dentro do template elas não disparam análise de string, a variável é processada normalmente
what'$valok'what’hello foxdevelopMesmo caso acima, aspas simples são caracteres literais comuns
$valokwhat$valokwhat❌ Variável não reconhecida! O Velocity interpreta todo valokwhat como nome da variável. Se não encontrar, exibe o texto original
${valok}whathello foxdevelopwhat✅ As chaves delimitam a variável, resolve completamente o problema de variável grudada ao texto

Resumo

  1. Sempre utilize ${nomeDaVariavel} quando a variável for unida a outro texto
    Errado: $valokwhat; Correto: ${valok}what
  2. Para concatenar sufixos de texto: use ${valok}.cn, não escreva ${valok.cn}
  3. $!nomeDaVariavel referência silenciosa: retorna valor vazio se a variável não existir, não imprime o texto bruto $xxx
  4. Aspas simples e duplas dentro do HTML do template são apenas caracteres comuns; somente dentro da atribuição #set existe diferença: aspas simples (não interpreta variáveis), aspas duplas (interpreta variáveis)
#set($a = "$valok") // Aspas duplas: interpreta variável, a=hello bamn
#set($a = '$valok') // Aspas simples: não interpreta variável, a=$valokCode language: PHP (php)

Observações complementares sobre limites de variável

Deixe um comentário

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