Collection (SP-Tag)
Name
<sp:collection> - Erzeugt oder ändert eine Liste
Syntax
<sp:collection name="variable" action="add" value="come back at ${myTime}" index="2" />
Beschreibung
Mit Hilfe von sp:collection
können Listen erzeugt und verändert werden. Listen können beliebige Objekte enthalten. Je nach angegebener Aktion können Listenelemente hinzugefügt, ersetzt oder gelöscht werden.
Listen können erzeugt werden, indem die einzelnen Einträge über die action
add
, bzw. addAll
hinzugefügt werden. Listen können aber auch über Suchabfragen mit dem Attribut query
oder den Attribut object
(wenn ein QueryInformation-Objekt übergeben wird) erzeugt werden.
(Ab Version 2.0.3)
Werte können über die Attribute value oder object gesetzte werden. Alternativ ist es auch möglich den Wert im Body des Tags zu setzten. Hierbei wird zunächst der Body ausgeführt und das Ergebnis verwendet
<sp:collection name="family" action="add"><sp:print name="father"/></sp:collection>
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
name
|
Variable | Ja | None | 1 |
action
|
Text | Ja außer für query | None | 1 |
value
|
Text | Ja oder object oder im Body des Tags, für add und replace | None | 1 |
object
|
Attribute | Ja oder value oder im Body des Tags, für add und replace | None | 1 |
index
|
Expression | Ja, für remove und replace | None | 1 |
query
|
Query | Nein | None | 1 |
publisher
|
Text | Nein | auto | 1 |
locale
|
Locale | Nein | None | 1 |
scope
|
Scope | Nein | request | 1 |
name
- Name der Liste.
action
- Aktion, die ausgeführt werden soll. Es existieren die Aktionen
add
,addAll
,remove
,clear
,new
,replace
,removeFirst
,removeLast
undunique
.- add
- Fügt ein Element an das Ende der Liste. Ist ein
index
angegeben, so wird das Element an dieser Position eingefügt. Das ursprüngliche Elemente und alle nachfolgenden Elemente werden eine Position weiter geschoben. - addAll
- Mit dieser Aktion können mehrere Elemente der Liste hinzugefügt werden. Dazu muß
object
vom Typ Collection sein. - remove
- Löscht ein Element aus der Liste. Ist
index
angegeben, wird das Element an der Index-Position gelöscht und alle nachfolgenden Elemente rutschen eine Position nach oben. Istobject
bzw.value
angegeben, wird das Element in der Liste gesucht und gelöscht. - clear
- Löscht alle Elemente aus der Liste.
- new
- Erzeugt eine neue leere Liste.
- replace
- Ersetzt ein Element der Liste.
index
gibt hierbei die Position des Elements an, das durchobject
bzw.value
ersetzt werden soll. - removeFirst
- Löscht das erste Element der Liste.
- removeLast
- Löscht das letzte Element der Liste.
- unique
- Entfernt alle mehrfach vorkommenden Elemente aus der Liste.
value
- Ein Text, der mit der Liste verarbeitet werden soll.
object
- Ein Objekt das mit der Liste verarbeitet werden soll. Ist
object
vom Typ QueryInformation, so gilt das gleiche wie beim Attributquery
.
index
- Listen-Position mit der eine Aktion ausgeführt werden soll.
query
- Fügt in die Collection die Ergebnisse der übergebenen Suchabfrage ein. Ist dieses Attibut gesetzt, ist kein
action
nötig. Die Aktion entspricht einemaddAll
. Es kann jedoch eine andere Aktion angegeben werden.
publisher
- Wird der Collection-Tag in Verbindung mit Suchabfragen verwendet (durch
query
oderobject
), ist ein Publikationsbereich erforderlich, mit der die Suchabfrage ausgeführt werden soll. Mit diesem Attribute können ein oder mehrere Publikationsbereiche angegeben werden (durch Kommata getrennt). Entweder werden die Publikationsbereiche durch ihren Anchor angegeben, oder folgende Schlüsselwörter verwendet:- current
- Der aktuelle Publikationsbereich. Dieser steht im
out
- undpreview
-Modus zur Verfügung. - ignore
- Ignoriert die Publikationsbereiche und liefert die Treffer unabhängig davon, ob sie publiziert sind oder nicht.
- all
- Alle Publikationsbereiche des Mandanten.
- auto
- Entspricht im
out
- undpreview
-Modus dem Schlüsselwortcurrent
und imin
-Modusignore
.
locale
- Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachiger Variablen.
scope
- Namensraum, in dem die Variable definiert ist. Für diesen Tag ist der Page- und Request-Scope möglich (
page
,request
).
Beispiele
Eine Liste von Strings erstellen
Template Quelltext
<sp:collection name="myList" action="add" value="peter"/>
<sp:collection name="myList" action="add" value="paul"/>
<sp:collection name="myList" action="add" value="mary"/>
Zwei Listen zu einer Liste vereinen
Template Quelltext
<sp:collection name="family" action="add" value="father"/>
<sp:collection name="family" action="add" value="mother"/>
<sp:collection name="family" action="add" value="sister"/>
<sp:collection name="family" action="add" value="brother"/>
<sp:collection name="friends" action="add" value="girl friend"/>
<sp:collection name="friends" action="add" value="boy friend"/>
<sp:collection name="nice_people" action="addAll" object="family"/>
<sp:collection name="nice_people" action="addAll" object="friends"/>
Suchabfrage ausführen
Template Quelltext
<sp:collection name="queryResult" query="infolevel = 'content'"/>