Prédéfinition de variable : #set ($valok = "hello foxdevelop")
Limite de variable ${} et distinction d’accès avec .
| Code | Rendu | Explication |
|---|---|---|
$valok | hello foxdevelop | Affichage basique de variable |
$valok.com | hello foxdevelop.com | Velocity tente d’appeler la propriété/méthode cn sur l’objet valok ; la chaîne ne possède pas cette méthode, la variable et le suffixe sont affichés bruts |
${valok}.com | hello foxdevelop.com | {} verrouille la limite de la variable. Après rendu de valok, le texte littéral .com est concaténé (syntaxe recommandée) |
$!valok.com | hellofoxdevelop.com | Référence silencieuse $! : identique à $valok si la variable existe ; renvoie une chaîne vide au lieu d’afficher $xxx quand elle n’existe pas |
${valok.com} | vide | Tentative de lecture de la propriété valok.com. La chaîne n’a pas cette propriété, la variable est absente. Utilisez $!{valok.com} pour obtenir une chaîne vide |
${valok}.cn ✅ Concaténation variable + suffixe${valok.cn} ❌ Accès à la propriété cn de l’objet valok
Guillemets simples / doubles & fusion de variables
| Code | Rendu | Explication |
|---|---|---|
what$valok | whathello foxdevelop | Concaténation directe, Velocity détecte automatiquement la limite de variable |
what$"valok" | what$ »valok » | ❌ Syntaxe invalide. $ ne peut pas être suivi immédiatement par un guillemet, la variable n’est pas analysée |
what"$valok" | what »hello foxdevelop« | Les guillemets sont de simples caractères dans le template, ils ne déclenchent pas de parsing de chaîne, la variable s’affiche normalement |
what'$valok' | what’hello foxdevelop‘ | Même principe, les apostrophes sont des caractères littéraux |
$valokwhat | $valokwhat | ❌ Variable non reconnue ! Velocity interprète valokwhat comme nom complet de variable, affiche le texte brut si introuvable |
${valok}what | hello foxdevelopwhat | ✅ Les accolades fixent la limite, résout le problème de fusion variable‑texte |
Résumé
- Utilisez systématiquement
${nomVariable}quand une variable est collée à du texte
Erroné :$valokwhat; Correct :${valok}what - Pour ajouter un suffixe : écrivez
${valok}.cn, pas${valok.cn} - Référence silencieuse
$!variable: renvoie du vide si la variable n’existe pas, n’affiche pas$xxx - Les guillemets dans le HTML du template sont de simples caractères ; seul à l’intérieur d’un #set l’apostrophe (sans résolution de variable) et le guillemet double (résout la variable) ont un comportement différent
#set($a = "$valok") // Guillemets doubles : résout la variable, a=hello bamn
#set($a = '$valok') // Apostrophe : ne résout pas la variable, a=$valokLangage du code : PHP (php)
Compléments sur les limites de variable
Previous: Itérer sur des collections
Next: Méthodes d’extension