Filter (SP-Tag): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (Schützte „Filter (SP-Tag)“ [edit=autoconfirmed:move=autoconfirmed]) |
Hying (Diskussion | Beiträge) |
||
(9 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
==Syntax== | ==Syntax== | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <sp:filter name="filteredList" collection="listToFilter" attribute="name" filter="*Example*" ic="true | + | <sp:filter name="filteredList" collection="listToFilter" attribute="name" filter="*Example*" ic="true"/> |
− | </source> | + | </source> |
==Beschreibung== | ==Beschreibung== | ||
− | Mit diesem Tag können Listen gefiltert werden | + | Mit diesem Tag können Listen gefiltert werden um beispielsweise Listen-Elemente nach bestimmten Kriterien aus der Liste zu entfernen. Es gibt drei Arten von Filtern: Einen einfachen Wildcard-Filter, der * und ? unterstützt, einen Filter aus regulären Ausdrücken für komplexe Anforderungen sowie einen Bereichsfilter. |
==Attribute== | ==Attribute== | ||
− | {| class="prettytable" | + | {| class="prettytable sortable" |
|- class="hintergrundfarbe1" | |- class="hintergrundfarbe1" | ||
! Name || Type || Required || Default || ab IES Version | ! Name || Type || Required || Default || ab IES Version | ||
Zeile 86: | Zeile 86: | ||
| None | | None | ||
| 1 | | 1 | ||
+ | |- | ||
+ | | <code>scope</code> | ||
+ | | [[Text]] | ||
+ | | Nein | ||
+ | | None => RequestScope | ||
+ | | 2.13 | ||
|} | |} | ||
Zeile 101: | Zeile 107: | ||
;<code>ic</code> | ;<code>ic</code> | ||
− | : | + | :Ist Ignore-Case auf <code>true</code> gesetzt, wird eine Groß- und Kleinschreibung nicht berücksichtigt. Dieses Attribut gilt nur für die Filtertypen Wildcard und regulärer Ausdruck. |
;<code>invert</code> | ;<code>invert</code> | ||
− | : | + | :Invertiert die Logik des Filters. Alle Elemente die normalerweise herausgefiltert würden, bilden die Filterergebnisse. |
;<code>mode</code> | ;<code>mode</code> | ||
:Auswahl des Filter-Mechanismus. | :Auswahl des Filter-Mechanismus. | ||
:;simple (Wildcard-Filter) | :;simple (Wildcard-Filter) | ||
− | ::Der Filter kann die Wildcards * für beliebige Zeichen und ? für ein beliebiges Zeichen enthalten. So würde eine wie folgt gefilterte Liste nur Elemente enthalten die mit a beginnen. | + | ::Der Filter kann die Wildcards * für beliebige Zeichen und ? für ein beliebiges Zeichen enthalten. So würde eine wie folgt gefilterte Liste nur Elemente enthalten, die mit a beginnen. |
::<source lang="text"> | ::<source lang="text"> | ||
a* | a* | ||
Zeile 121: | Zeile 127: | ||
;<code>locale</code> | ;<code>locale</code> | ||
− | :Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei | + | :Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen. |
;<code>from</code> | ;<code>from</code> | ||
Zeile 132: | Zeile 138: | ||
:Der Typ für die <code>from</code> und <code>to</code> Attribute: <code>number</code>, <code>text</code>, <code>date</code>. | :Der Typ für die <code>from</code> und <code>to</code> Attribute: <code>number</code>, <code>text</code>, <code>date</code>. | ||
:;number | :;number | ||
− | ::Das | + | ::Das Element oder Attribut wird als Zahl interpretiert. Es wird nicht herausgefiltert wenn es innerhalb des Zahlenbereiches liegt, der mit <code>from</code> und <code>to</code> definiert wurde. |
:;text | :;text | ||
− | ::Das | + | ::Das Element oder Attribut wird als Text interpretiert. Es wird nicht herausgefiltert wenn der Text mit den Zeichen beginnt, die in dem mit <code>from</code> und <code>to</code> definierten Bereich liegen. |
:;date | :;date | ||
− | ::Das | + | ::Das Element oder Attribut wird als Datum interpretiert. Es wird nicht herausgefiltert wenn es innerhalb des Datumbereiches liegt, der mit <code>from</code> und <code>to</code> definiert wurde. |
− | |||
;<code>format</code> | ;<code>format</code> | ||
:Das Format des Datums, wenn die <code>from</code> und <code>to</code> Werte als Datum interpretiert werden sollen. | :Das Format des Datums, wenn die <code>from</code> und <code>to</code> Werte als Datum interpretiert werden sollen. | ||
+ | ;<code>scope</code> | ||
+ | :Gültigkeitsbereich, in dem die Variable definiert ist. Möglich sind: <code>page|request|session</code>. | ||
+ | |||
==Beispiele== | ==Beispiele== | ||
− | + | ===Filtern einer Liste=== | |
Template Quelltext | Template Quelltext | ||
<source lang="xml"> | <source lang="xml"> | ||
<%-- zu filternde Liste erzeugen --%> | <%-- zu filternde Liste erzeugen --%> | ||
− | <sp: | + | <sp:collection name="names" action="add" value="Christian"/> |
− | <sp: | + | <sp:collection name="names" action="add" value="Karsten"/> |
− | <sp: | + | <sp:collection name="names" action="add" value="Gaby"/> |
− | <sp: | + | <sp:collection name="names" action="add" value="Markus"/> |
− | <sp: | + | <sp:collection name="names" action="add" value="Tina"/> |
− | <sp: | + | <sp:collection name="names" action="add" value="Marion"/> |
− | <sp: | + | <sp:collection name="names" action="add" value="Jörg"/> |
<%-- Einfacher Filter --%> | <%-- Einfacher Filter --%> | ||
Zeile 190: | Zeile 198: | ||
<noinclude> | <noinclude> | ||
[[Category:SP-Tags]] | [[Category:SP-Tags]] | ||
− | |||
− | |||
[[Category:Qualität_des_Codes_prüfen]] | [[Category:Qualität_des_Codes_prüfen]] | ||
+ | [[Category:Beispiel_überarbeiten_testen]] | ||
</noinclude> | </noinclude> |
Aktuelle Version vom 7. Oktober 2015, 09:31 Uhr
Name
<sp:filter> - Filtert Elemente aus einer Liste.
Syntax
<sp:filter name="filteredList" collection="listToFilter" attribute="name" filter="*Example*" ic="true"/>
Beschreibung
Mit diesem Tag können Listen gefiltert werden um beispielsweise Listen-Elemente nach bestimmten Kriterien aus der Liste zu entfernen. Es gibt drei Arten von Filtern: Einen einfachen Wildcard-Filter, der * und ? unterstützt, einen Filter aus regulären Ausdrücken für komplexe Anforderungen sowie einen Bereichsfilter.
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
name
|
Variable | Ja | None | 1 |
collection
|
Collection | Ja | None | 1 |
attribute
|
Text | Nein | das Element selbst | 1 |
filter
|
Text / Regular-Expression | Nein | None | 1 |
ic
|
Condition | Nein | false
|
1 |
invert
|
Condition | Nein | false
|
1 |
mode
|
Text | Nein | simple
|
1 |
locale
|
Locale | Nein | None | 1 |
from
|
Text | Nein | None | 1 |
to
|
Text | Nein | None | 1 |
type
|
Text | Nein | None | 1 |
format
|
Text | Nein | None | 1 |
scope
|
Text | Nein | None => RequestScope | 2.13 |
name
- Name der gefilterten Liste.
collection
- Name der zu filternden Liste.
attribute
- Attribut, auf das der Filter angewendet werden soll.
filter
- Die Filterdefinition für die Filtertypen Wildcard und regulärer Ausdruck. Der mit dem Attribut
mode
angegebene Modus wird verwendet. Ohne Angabe eines Modus wirdsimple
verwendet.
ic
- Ist Ignore-Case auf
true
gesetzt, wird eine Groß- und Kleinschreibung nicht berücksichtigt. Dieses Attribut gilt nur für die Filtertypen Wildcard und regulärer Ausdruck.
invert
- Invertiert die Logik des Filters. Alle Elemente die normalerweise herausgefiltert würden, bilden die Filterergebnisse.
mode
- Auswahl des Filter-Mechanismus.
- simple (Wildcard-Filter)
- Der Filter kann die Wildcards * für beliebige Zeichen und ? für ein beliebiges Zeichen enthalten. So würde eine wie folgt gefilterte Liste nur Elemente enthalten, die mit a beginnen.
a*
- regex (Reguläre Ausdrücke)
- Für komplexe Filter stehen Reguläre Ausdrücke (POSIX) zur Verfügung. So würde im regex-Filtermode eine mit
[a-dA-D].*
gefilterte Liste nur Elemente enthalten, die mit dem Buchstaben A, a, B, b, C, c, d oder D beginnen.
locale
- Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen.
from
- Der Wert für den Beginn eines Bereiches, z.B. "Aa" oder "100". Ob der Wert als Text, Zahl oder Datum interpretiert wird, kann mit dem Attribut type angegeben werden.
to
- Der Wert für das Ende eines Bereiches, z.B. "Zz" oder "999". Ob der Wert als Text, Zahl oder Datum interpretiert wird, kann mit dem Attribut
type
angegeben werden.
type
- Der Typ für die
from
undto
Attribute:number
,text
,date
.- number
- Das Element oder Attribut wird als Zahl interpretiert. Es wird nicht herausgefiltert wenn es innerhalb des Zahlenbereiches liegt, der mit
from
undto
definiert wurde. - text
- Das Element oder Attribut wird als Text interpretiert. Es wird nicht herausgefiltert wenn der Text mit den Zeichen beginnt, die in dem mit
from
undto
definierten Bereich liegen. - date
- Das Element oder Attribut wird als Datum interpretiert. Es wird nicht herausgefiltert wenn es innerhalb des Datumbereiches liegt, der mit
from
undto
definiert wurde.
format
- Das Format des Datums, wenn die
from
undto
Werte als Datum interpretiert werden sollen. scope
- Gültigkeitsbereich, in dem die Variable definiert ist. Möglich sind:
page|request|session
.
Beispiele
Filtern einer Liste
Template Quelltext
<%-- zu filternde Liste erzeugen --%>
<sp:collection name="names" action="add" value="Christian"/>
<sp:collection name="names" action="add" value="Karsten"/>
<sp:collection name="names" action="add" value="Gaby"/>
<sp:collection name="names" action="add" value="Markus"/>
<sp:collection name="names" action="add" value="Tina"/>
<sp:collection name="names" action="add" value="Marion"/>
<sp:collection name="names" action="add" value="Jörg"/>
<%-- Einfacher Filter --%>
Liste filtern (Filter ?ar* - simple-mode):<br>
<sp:filter name="filteredList" collection="names" filter="?ar*" mode="simple"/>
<sp:loop collection="filteredList" item="it">
<sp:print name="it"/><br>
</sp:loop>
<br>
<%-- Filter mit regulärem Ausdruck --%>
Liste filtern (Filter [a-lA-L].* - regex-mode):<br>
<sp:filter name="filteredList" collection="names" filter="[a-lA-L].*" mode="regex"/>
<sp:loop collection="filteredList" item="it">
<sp:print name="it"/><br>
</sp:loop>
Ausgabe
Liste filtern (Filter ?ar* - simple-mode):
Karsten
Markus
Marion
Liste filtern (Filter [a-lA-L].* - regex-mode):
Christian
Karsten
Gaby
Jörg