Pré‑definição de variável: #set ($valok = "hello foxdevelop")
Diferenciação entre limite de variável ${} e acesso com .
| Código | Resultado renderizado | Explicação do funcionamento |
|---|---|---|
$valok | hello foxdevelop | Saída básica da variável |
$valok.com | hello foxdevelop.com | Velocity 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}.com | hello foxdevelop.com | {} define o limite da variável. Após renderizar valok, o texto .com é concatenado (forma recomendada para concatenação) |
$!valok.com | hellofoxdevelop.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} | vazio | Tenta 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ódigo | Resultado renderizado | Explicação do funcionamento |
|---|---|---|
what$valok | whathello foxdevelop | Concatenaçã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 foxdevelop“ | As 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 foxdevelop‘ | Mesmo 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}what | hello foxdevelopwhat | ✅ As chaves delimitam a variável, resolve completamente o problema de variável grudada ao texto |
Resumo
- Sempre utilize
${nomeDaVariavel}quando a variável for unida a outro texto
Errado:$valokwhat; Correto:${valok}what - Para concatenar sufixos de texto: use
${valok}.cn, não escreva${valok.cn} $!nomeDaVariavelreferência silenciosa: retorna valor vazio se a variável não existir, não imprime o texto bruto$xxx- 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
Previous: Iterar coleções
Next: Métodos de extensão