Condition (SP-Tag)
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 20
Prü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.