Grundlegende Vorlagensyntax

1. Objekte an Vorlagen übergeben

1.1 PageInfo‑Entitätsklasse

Bisher haben wir nur einfache Zeichenketten übergeben. Das ist ineffizient und erschwert die Wartung. Wenn man Daten in Entitätsobjekte verpackt, wird der Code deutlich übersichtlicher.

public class PageInfo
{
    private bool IsShowImage;
    public bool IsShowImage1
    {
        get { return IsShowImage; }
        set { IsShowImage = value; }
    }
}Code-Sprache: C# (cs)
  • Privates Feld IsShowImage, nach außen über die Eigenschaft IsShowImage1 verfügbar
  • Zugriff in der Vorlage: $info.IsShowImage1

1.2 Kontextdaten füllen

//Vorlagen‑Kontext‑Container
IContext context = new VelocityContext();

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

//Objekt pi unter dem Schlüssel info im Kontext ablegen
context.Put("info",pi);

//Beispiel für String‑Variable
context.Put("infotitle","Hallo");Code-Sprache: C# (cs)

context.Put("Schlüsselname",Daten):Gibt Daten an die Vorlage weiter, die Vorlage liest sie über $Schlüsselname aus.

2. Wichtige Velocity‑Vorlagensyntax

2.1 Direktiv‑Zeichen #

Anweisungen, die mit # beginnen, sind Direktiven. Häufig verwendet:
#if, #else, #end, #foreach, #set, #include

Beispiel für bedingte Darstellung:

Bereiten Sie zwei Bilddateien vor und legen Sie diese unter Contents/Images im Website‑Stammordner ab. Über IsShowImage1 steuern Sie, welches Bild angezeigt wird.

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

Logik: Zeigt a.gif bei IsShowImage1=true, sonst b.gif an

2.2 Variablen‑Zeichen $

  • $Variablenname:Gibt den Variablenwert aus
  • ${Variablenname}Variablenbegrenzung (wichtig!)

Anwendungsfall: Text folgt direkt auf eine Variable, die Engine kann die Variable‑Grenze nicht erkennen.

Falsche Schreibweise: $infotitlefoxdevelop.com
Die Engine interpretiert alles als Variable infotitlefoxdevelop, welche nicht existiert.

Richtige Schreibweise: ${infotitle}foxdevelop.com
Die Engine wertet infotitle als Variable aus und hängt die Zeichenkette foxdevelop.com anCode-Sprache: PHP (php)

2.3 Still‑Ausgabe‑Modifikator !$!Variablenname

Standardverhalten: Fehlt die Variable, wird der Text $Variablenname unverändert ausgegeben
$!Variablenname:Gibt Leertext aus, wenn Variable fehlt oder null ist; das‑$‑Zeichen wird nicht ausgegeben

Vergleichsbeispiel:

SyntaxVariable vorhanden(Wert=“Hallo“)Variable fehlt
$infotitleHallo$infotitle
$!infotitleHallo(leer, keine Ausgabe)
${infotitle}Hallo${infotitle}
$!{infotitle}Halloleer

Vollständiger Testcode:

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

Zusammenfassung

  1. Wenn Text hinter eine Variable angehängt wird, immer mit ${Variable} umschließen
  2. In Produktivumgebungen bevorzugt $!{Variablenname} verwenden, damit bei Null‑Werten kein rohes $xxx das Layout zerstört
  3. Bei #if‑Prüfung auf boolesche Eigenschaften direkt #if($info.IsShowImage1) schreiben, ==true ist überflüssig

Grundlegende Vorlagensyntax

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert