Condition (SP-Tag)
Aus SiteparkWiki
Inhaltsverzeichnis |
Name
<sp:condition>, <sp:if>, <sp:elseif>, <sp:else> - Bedingungen prüfen
Syntax
<sp:if condition="${a} > ${b}"> ... </sp:if> <sp:condition> <sp:if condition="${a} <= 0"> ... </sp:if> <sp:elseif condition="${a} > 0 && ${a} < 10"> ... </sp:elseif> <sp:elseif condition="${a} >= 10 && ${a} < 100"> ... </sp:elseif> <sp:else> ... </sp:else> </sp:condition>
Beschreibung
Die vier Tags ermöglichen es verschiedene Bedingungen abzufragen. Einfache Abfragen können direkt mit <sp:if> erstellt werden. Werden else- bzw. elseif-Bedingungen in einer Abfrage benötigt, muss die gesamte Abfrage-Struktur mit sp:condition umschlossen werden. Zu beachten ist hier, dass zwischen <sp:condition> und <sp:if> kein Text stehen darf. Das gleiche gilt für </sp:if> und <sp:elseif>, </sp:elseif> und <sp:elseif>, </sp:elseif> und <sp:else> sowie </sp:else> und </sp:condition>.
Es bestehen zwei Möglichkeiten zur Abfrage einer Bedingung. Zum einen können Sie mit dem name-Attribut in Verbindung mit gt, gte, lt, usw. die zu prüfende Bedingung angegeben. Zum anderen können Sie für komplexe Abfragen mit dem condition-Attribut komplexe Bedingungen formulieren. Innerhalb dieses Attributes können Ausdrücke beispielsweise wie folgt angegeben werden.
<sp:if condition="(${a} > ${b}) && ((${a} + 3) / 10 < ${b})}"> .. </sp:if>
Attribute
| Name | Type | Required | Default | ab IES Version |
|---|---|---|---|---|
name
| Variable | Ja oder condition
| None | 1 |
locale
| Locale | Nein | None | 1 |
isNull
| Condition | Nein | None | 1 |
ic
| Condition | Nein | false | 1 |
contains
| Text | Nein | None | 1 |
match
| Regular-Expression | Nein | None | 1 |
eq
| Attribute | Nein | None | 1 |
neq
| Attribute | Nein | None | 1 |
gt
| Attribute | Nein | None | 1 |
gte
| Attribute | Nein | None | 1 |
lt
| Attribute | Nein | None | 1 |
lte
| Locale | Nein | None | 1 |
condition
| Condition | Nein | None | 1 |
name- Variablenname eines Objektes das verglichen werden soll.
locale- Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen.
isNull- Die Bedingung ist erfüllt, wenn die Variable in
nameleer oder nicht vorhanden ist undisNullden Werttruehat. WennisNullden Wertfalsehat, ist die Bedingungen erfüllt, wenn die Variable innamenicht leer ist.
ic- Die Auswertung soll "ignore case" durchgeführt werden. Bezieht sich auf
eq,neq,gt,gte,lt,lte, undcontains.
contains- Zeichenkette, die in der Variablen enthalten sein soll.
match- Regulärer Ausdruck, der in der Variablen enthalten sein soll.
eq- Die Bedingung ist erfüllt, wenn die Variable in
namegleich der Variable ineqist.
neq- Die Bedingung ist erfüllt, wenn die Variable in
nameungleich der Variable inneqist.
gt- Die Bedingung ist erfüllt, wenn die Variable in
namegrösser als der Variable ingtist.
gte- Die Bedingung ist erfüllt, wenn die Variable in
namegrösser oder gleich der Variable ingteist.
lt- Die Bedingung ist erfüllt, wenn die Variable in
namekleiner als in der Variable inlteist.
lte- Die Bedingung ist erfüllt, wenn die Variable in
namekleiner oder gleich der Variable inlteist.
condition- Es wird eine Condition erwartet, die den Wert
trueoderfalsezurückliefert.
Beispiele
isNull Prüfung
Template Quelltext
<sp:set name="foo" value="bar"/> <sp:if name="foo"> foo ist definiert! </sp:if> <%-- kein Inhalt ist gleichbedeutend mit 'nicht definiert' --%> <sp:set name="foo" value=""/> <sp:if name="foo" isNull="true"> foo ist nicht definiert! </sp:if>
Ausgabe
foo ist definiert! foo ist nicht definiert!
Einfache if Bedingung
Template Quelltext
<sp:set name="foo" value="bar"/> <sp:if name="foo" eq="bar"> foo hat den Wert <sp:print name="foo"/> </sp:if>
Ausgabe
foo hat den Wert bar
Einfache if-elseif-else Bedingung
Template Quelltext
<%-- Bei der Verwendung von if-elseif-else Konstrukten müssen die einzelnen Tags in einem <sp:condition> zusammengefasst werden. --%> <sp:condition> <sp:if name="foo" eq="foo"> Ich bin im if-Zweig </sp:if> <sp:elseif name="foo" eq="barx"> Ich bin im ersten ifelse-Zweig </sp:elseif> <sp:elseif name="foo" eq="bar"> Ich bin im zweiten elseif-Zweig </sp:elseif> <sp:elseif condition="!isNull(${foo})"> Ich bin im dritten elseif-Zweig </sp:elseif> <sp:else> Ich bin im else-Zweig </sp:else> </sp:condition>
Ausgabe
Ich bin im zweiten elseif-Zweig
Abfrage mit condition
Template Quelltext
<sp:if condition="${foo} == 'bar'"> ${foo} == 'bar' liefert true </sp:if> <sp:set name="x" value="5"/> <sp:set name="y" value="10"/> <sp:if condition="(${x} + ${y}) == 15"> Die Summe von x und y ist 15 </sp:if> <sp:if condition="${x} > 2 && ${x} < 20"> x ist größer als 2 und kleiner als 20 </sp:if>
Ausgabe
${foo} == 'bar' liefert true
Die Summe von x und y ist 15
x ist größer als 2 und kleiner als 20Prüfe Boolean
Template Quelltext
<sp:set name="boolean" value="true"/> <sp:if condition="${boolean} == true"> 1: boolean ist wahr. </sp:if> <sp:if condition="${boolean} == 'true'"> 2: boolean ist wahr. </sp:if> <sp:if condition="${boolean} == 1"> 3: boolean ist wahr. </sp:if>
Ausgabe
2: boolean ist wahr.

