Skip to content

18.1 Grundlegendes

Nachfolgend finden Sie allgemeine Erläuterungen zur Verwendung von Velocity Skript Ausdrücken.

18.1.1 Kommentare

Kommentare in Skripten werden durch „##“ gekennzeichnet:

## Kommentar: Dieser Text wird nicht ausgeführt.

18.1.2 Variablen Zuweisungen

Variablen Zuweisungen erfolgen durch:

### Fester String Wert
#set($variablenName="Wert als String")

## Fester Integer Wert
#set($variablenName=1)

## Wert aus einer anderen Variablen
#set($variablenName=$andererVariablenName)

## Ergebniswert aus einem Funktionsaufruf
#set($emailIsValid=$ScriptHelper.validateEmail($!requestParameters.EMAIL))

18.1.3 Variablen in Formularen ausgeben

Die Variablen, welche in einem Skript ermittelt und zugewiesen werden, können in den HTML-Texten eines OpenEMM-Formulars ausgegeben werden.

Achtung: Dies ist nicht der Skripttext, sondern der Text für die Erfolgs- oder Fehlerseite des Formulars.

<html>
Die Variable hat den Wert: $variablenName
</html>

18.1.4 Verwendung von Variablen in umgebendem Text

Sollte die Verwendung einer Variablen mit umgebenden Text uneindeutig werden, so kann der Variablenname auch jederzeit mit geschweiften Klammern umschlossen werden:

Der Preis beträgt: ${variablenName}Euro

18.1.5 Erzeugung einer leeren Liste

Mit Velocity Skripten kann man auch eine leere Liste erzeugen, die dann gefüllt und weiterverwendet wird. Direkte Konstruktoraufrufe sind in Velocity Skripten nicht möglich.

#set($list=$ScriptHelper.newLinkedList())
$list.add("some value 1")
$list.add("some value 2")
</code

==== Erzeugung und Nutzung einer Map ====

Eine Map / Dictionary / Table kann wie folgt erzeugt und dann mit Werten
befüllt werden:
<code>
### Neue Map anlegen
#set($mapVariable={})

## Fester Integer Wert als neuer Wert
#set($mapVariable["neuer Key"]=1)
## oder
$mapVariable.put("neuer Key", 2)

## Fester Text Wert als neuer Wert
#set($mapVariable["neuer Key"]="Abc123")
## oder
$mapVariable.put("neuer Key", "Abc124")

18.1.6 Verzweigungen (IF)

Durch Velocity Skripte kann Programmcode mit Verzweigungen erzeugt werden.

#set($customerID = 1234)
#if($customerID != 0)
    ## Empfänger wurde gefunden
#else
    ## Empfänger wurde nicht gefunden
#end

18.1.7 Schleifen (While, Foreach)

Echte While-Schleifen existieren in Velocity nicht.

Foreach-Schleifen sehen wie folgt aus:

#set($allMailingLists = [1234, 1235, 1236])
#foreach($mailingList in $allMailingLists)
    ## Code der für jede der MailiniglistIDs ausgeführt werden soll
#end

18.1.8 Direkte Verwendung der Request Parameter und Request Header

Das Ausrufezeichen bedeutet, dass hier ein leerer Wert zurückkommt, auch wenn der Parameter gar nicht im Request vorhanden ist. Ohne Ausrufezeichen würde hierbei ein Fehler geworfen werden und das Skript wird abgebrochen.

$!requestParameters.email ## Caseinsensitive Angabe des Parameternamens "Email" ist erlaubt
#set($referer="Request wurde ohne Referer gesendet") ## Defaultwert 
#set($!referer=$_request.getHeader("referer")) 
## Überschreibt den Defaultwert in "$referer" nur, wenn ein neuer Wert vorliegt

18.1.9 String Bearbeitung (Substring)

Durch einen Bug im Velocity war es nicht möglich, per „length()-1“ im Substring die entsprechende Funktion herzustellen, daher „length()+-1“

#set($text = "Abcd12345")
#set($neueLaenge = $text.length()+-1)
#set($textNeu = $text.substring(0, $neueLaenge))
## => $textNeu = "Abcd1234"

18.1.10 Rechnen mit Zahlenwerten aus Strings

Zahlenwerte aus Request Parametern sind stets Strings, auf welchen aber keine Rechenoperationen ausgeführt werden können. Daher müssen diese zuerst in Zahlen umgewandelt werden. Diese müssen aber zur Anzeige in HTML-Texten wieder in Strings zurück gewandelt werden.

#set($zahlInString="12345")
#set($zahlZumRechnen = $ScriptHelper.parseInt($zahlInString))
#set($zahlZumRechnen = $zahlZumRechnen + 1)
#set($zahlWiederAlsString = " $zahlZumRechnen ") ## Wichtig sind dabei die Leerzeichen in den Anführungsstrichen

18.1.11 Anzeige der Erfolgsseite oder Fehlerseite bei Formularen

Ein OpenEMM Velocity Skript kann (meistens am Ende) einen bestimmten String-Wert (NICHT Integer) in der Variablen „scriptResult“ setzen, der bestimmt, ob im Rahmen des Skriptaufrufs innerhalb eines Formulars am Ende die Erfolgsseite oder die Fehlerseite angezeigt werden soll.

Anzeige der Erfolgsseite:

#set($scriptResult="1")

Anzeige der Fehlerseite:

#set($scriptResult="0")