Variablen‑Voreinstellung:#set ($valok = "hello foxdevelop")
Variablen‑Grenze ${} und Zugriffsunterschied mit .
| Code | Ergebnis | Erläuterung |
|---|---|---|
$valok | hello foxdevelop | Einfache Variablenausgabe |
$valok.com | hello foxdevelop.com | Velocity versucht Eigenschaft/Methode cn des Objekts valok aufzurufen; der String hat keine Methode cn, Variable plus Suffix wird unverändert ausgegeben |
${valok}.com | hello foxdevelop.com | {} fixiert die Variablengrenze. Nach der Auswertung von valok wird der Text .com angehängt (empfohlene Schreibweise) |
$!valok.com | hellofoxdevelop.com | Stiller Verweis $!: verhält sich wie $valok bei vorhandener Variable; gibt leeren String statt rohem $xxx aus, falls die Variable fehlt |
${valok.com} | leer | Versuch, Eigenschaft valok.com zu lesen. Der String besitzt keine Eigenschaft com, Variable ist nicht vorhanden. Nutze $!{valok.com} für leere Ausgabe |
${valok}.cn ✅ Variable + Suffix anhängen${valok.cn} ❌ Zugriff auf Eigenschaft cn des Objekts valok
Einfache / Doppelte Anführungszeichen & Variablen‑Verklebung
| Code | Ergebnis | Erläuterung |
|---|---|---|
what$valok | whathello foxdevelop | Direkte Verkettung, Velocity erkennt die Variablengrenze automatisch |
what$"valok" | what$“valok“ | ❌ Ungültige Syntax. Nach $ darf kein Anführungszeichen folgen, Variable wird nicht geparst |
what"$valok" | what“hello foxdevelop„ | Anführungszeichen sind nur einfache Zeichen im Template, sie lösen keine String‑Auswertung aus; Variable wird normal aufgelöst |
what'$valok' | what’hello foxdevelop‚ | Gleiches Verhalten, einfache Anführungszeichen sind Literalzeichen |
$valokwhat | $valokwhat | ❌ Variable nicht erkennbar! Velocity interpretiert valokwhat als kompletten Variablennamen und gibt rohen Text aus, wenn er fehlt |
${valok}what | hello foxdevelopwhat | ✅ Geschweifte Klammern fixieren die Grenze, löst das Problem von Variable angehängt an Text |
Zusammenfassung
- Nutze immer
${Variablenname}, wenn Variable an Text angrenzt
Falsch:$valokwhat;Richtig:${valok}what - Zum Anhängen von Text:
${valok}.cnschreiben, nicht${valok.cn} $!Variablestiller Verweis: gibt leer aus, wenn Variable fehlt, statt$xxxanzuzeigen- Anführungszeichen im Template‑HTML sind einfache Zeichen;Nur innerhalb von #set‑Zuweisungen verhalten sich einfache (keine Variablenauswertung) und doppelte Anführungszeichen (Variablen auflösen) unterschiedlich
#set($a = "$valok") // Doppelte Anführungszeichen: Variable auflösen, a=hello bamn
#set($a = '$valok') // Einfache Anführungszeichen: keine Auflösung, a=$valokCode-Sprache: PHP (php)
Ergänzung zu Variablengrenzen
Previous: Über Sammlungen iterieren
Next: Erweiterungsmethoden