Map (SP-Tag): Unterschied zwischen den Versionen
Zeile 11: | Zeile 11: | ||
==Beschreibung== | ==Beschreibung== | ||
− | Mit dem Map-Tag können [[Map|Maps]] erzeugt und geändert werden. Eine Map ist eine Liste von Schlüssel/Werte-Paaren | + | Mit dem Map-Tag können [[Map|Maps]] erzeugt und geändert werden. Eine Map ist eine Liste von Schlüssel/Werte-Paaren und kann entweder über [[sp:loop]] durchlaufen werden oder die einzelnen Werte über den Schlüssel erfragen. Der Name des Schlüssels kann, getrennt durch einen Punkt an dem Map-Namen, angehängt werden um den Wert bespielsweise mit [[sp:print]] auszugeben. |
<source lang="xml"> | <source lang="xml"> | ||
<sp:print name="myMap.keyname"/> | <sp:print name="myMap.keyname"/> | ||
</source> | </source> | ||
− | Sieht man die Schlüssel einer Map als | + | Sieht man die Schlüssel einer Map als Attribut eines Objektes, kann sie zur Erzeugung von komplexen Objekten dienen. Da Maps auch Maps enthalten können, sind auch verschachtelte Strukturen möglich. Um verschachtelte Maps zu erzeugen, darf der Attributname Punkte enthalten. Der Map-Tag erzeugt für jeden mit einem Punkt getrennten Namen eine Map in der Map. |
<source lang="xml"> | <source lang="xml"> | ||
<sp:map name="myMap.mySubMap" key="keyname" value="text"/> | <sp:map name="myMap.mySubMap" key="keyname" value="text"/> | ||
Zeile 24: | Zeile 24: | ||
'''(Ab Version 2.0.3)''' | '''(Ab Version 2.0.3)''' | ||
− | Werte können über die Attribute value oder object | + | Werte können über die Attribute <code>value</code> oder <code>object</code> gesetzt werden. Alternativ ist es auch möglich den Wert im Body des Tags zu setzen. Hierbei wird zunächst der Body ausgeführt und das Ergebnis verwendet. |
<source lang="xml"> | <source lang="xml"> | ||
<sp:map name="myMap.mySubMap" key="keyname"><sp:print name="var"/></sp:map> | <sp:map name="myMap.mySubMap" key="keyname"><sp:print name="var"/></sp:map> | ||
Zeile 81: | Zeile 81: | ||
;<code>action</code> | ;<code>action</code> | ||
− | :Aktion, die ausgeführt werden soll. | + | :Aktion, die ausgeführt werden soll. Die folgenden Aktionen sind möglich: put, remove, new und clear. |
:;put | :;put | ||
− | ::Träg ein neues Schlüssel-Werte-Paar | + | ::Träg ein neues Schlüssel-Werte-Paar in die Map ein. Existiert schon ein Eintrag mit dem angegebenen Schlüssel, wird der alter Wert überschrieben. |
:;remove | :;remove | ||
− | ::Löscht das Schlüssel-Werte-Paar mit dem in key angegebenen Schlüssel aus der Map. | + | ::Löscht das Schlüssel-Werte-Paar mit dem in <code>key</code> angegebenen Schlüssel aus der Map. |
:;new | :;new | ||
::Erzeugt eine neue Map | ::Erzeugt eine neue Map | ||
Zeile 98: | Zeile 98: | ||
;<code>object</code> | ;<code>object</code> | ||
− | :Kennzeichnet das Objekt, | + | :Kennzeichnet das Objekt, das eingefügt, ersetzt oder gelöscht werden soll. |
;<code>locale</code> | ;<code>locale</code> | ||
− | :Dieses Attribut dient zur Auswahl der zu | + | :Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen. |
;<code>scope</code> | ;<code>scope</code> | ||
− | :[[Scope|Namensraum]], in dem die Variable definiert ist. Für diesen Tag ist der Page- und Request-Scope | + | :[[Scope|Namensraum]], in dem die Variable definiert ist. Für diesen Tag ist der Page- und Request-Scope möglich (<code>page</code>, <code>request</code>). |
==Beispiele== | ==Beispiele== | ||
Zeile 174: | Zeile 174: | ||
<noinclude> | <noinclude> | ||
[[Category:SP-Tags]] | [[Category:SP-Tags]] | ||
− | |||
[[Category:Qualität_des_Codes_prüfen]] | [[Category:Qualität_des_Codes_prüfen]] | ||
</noinclude> | </noinclude> |
Version vom 13. Februar 2009, 16:13 Uhr
Name
<sp:map> - Erzeugt oder ändert eine Map
Syntax
<sp:map name="myMap" action="put|remove|new|clear" key="keyname" value="come back at ${myTime}" />
<sp:map name="myMap" action="put|remove|new|clear" key="keyname" object="myVariable" />
Beschreibung
Mit dem Map-Tag können Maps erzeugt und geändert werden. Eine Map ist eine Liste von Schlüssel/Werte-Paaren und kann entweder über sp:loop durchlaufen werden oder die einzelnen Werte über den Schlüssel erfragen. Der Name des Schlüssels kann, getrennt durch einen Punkt an dem Map-Namen, angehängt werden um den Wert bespielsweise mit sp:print auszugeben.
<sp:print name="myMap.keyname"/>
Sieht man die Schlüssel einer Map als Attribut eines Objektes, kann sie zur Erzeugung von komplexen Objekten dienen. Da Maps auch Maps enthalten können, sind auch verschachtelte Strukturen möglich. Um verschachtelte Maps zu erzeugen, darf der Attributname Punkte enthalten. Der Map-Tag erzeugt für jeden mit einem Punkt getrennten Namen eine Map in der Map.
<sp:map name="myMap.mySubMap" key="keyname" value="text"/>
(Ab Version 2.0.3)
Werte können über die Attribute value
oder object
gesetzt werden. Alternativ ist es auch möglich den Wert im Body des Tags zu setzen. Hierbei wird zunächst der Body ausgeführt und das Ergebnis verwendet.
<sp:map name="myMap.mySubMap" key="keyname"><sp:print name="var"/></sp:map>
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
name
|
Variable | Ja | None | 1 |
action
|
Text | Ja | None | 1 |
key
|
Variable | Ja, für put | None | 1 |
value
|
Text | Ja oder object oder im Body des Tags, für put | None | 1 |
object
|
Attribute | Ja oder value oder im Body des Tags, für put | None | |
locale
|
Locale | Nein | None | 1 |
scope
|
Scope | Nein | request | 1 |
name
- Name der Map. Ein Punkt trennt die Namen für verschachtelte Maps.
action
- Aktion, die ausgeführt werden soll. Die folgenden Aktionen sind möglich: put, remove, new und clear.
- put
- Träg ein neues Schlüssel-Werte-Paar in die Map ein. Existiert schon ein Eintrag mit dem angegebenen Schlüssel, wird der alter Wert überschrieben.
- remove
- Löscht das Schlüssel-Werte-Paar mit dem in
key
angegebenen Schlüssel aus der Map. - new
- Erzeugt eine neue Map
- clear
- Löscht den Inhalt der Map
key
- Schlüssel, über den auf die Werte der Map zugegriffen werden soll.
value
- Kennzeichnet den Wert, der eingefügt, ersetzt oder gelöscht werden soll.
object
- Kennzeichnet das Objekt, das eingefügt, ersetzt oder gelöscht werden soll.
locale
- Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen.
scope
- Namensraum, in dem die Variable definiert ist. Für diesen Tag ist der Page- und Request-Scope möglich (
page
,request
).
Beispiele
Einfache Schlüssel/Werte Paare
Template Quelltext
<sp:map name="frequencies" action="put" key="C" value="261.63"/>
<sp:map name="frequencies" action="put" key="D" value="293.66"/>
<sp:map name="frequencies" action="put" key="E" value="329.63"/>
<sp:map name="frequencies" action="put" key="F" value="349.23"/>
<sp:map name="frequencies" action="put" key="G" value="392.00"/>
<sp:map name="frequencies" action="put" key="A" value="440.00"/>
<sp:map name="frequencies" action="put" key="H" value="493.88"/>
Auf einzelne Werte zugreifen:<br>
Frequenz von D: <sp:print name="frequencies.D"/> Hz
Die Map in einer Schleife durchlaufen<br>
Frequenzen der Tonleiter
<sp:loop collection="frequencies" item="f">
<sp:print name="f.key"/> = <sp:print name="f.value"/> Hz
</sp:loop>
Ausgabe
Auf einzelne Werte zugreifen:
Frequenz von D: 293.66 Hz
Die Map in einer Schleife durchlaufen
Frequenzen der Tonleiter
C = 261.63 Hz
D = 293.66 Hz
E = 329.63 Hz
F = 349.23 Hz
G = 392.00 Hz
A = 440.00 Hz
H = 493.88 Hz
Objekte mit einer Map erzeugen
Template Quelltext
<sp:map name="person" action="put" key="lastname" value="Müller"/>
<sp:map name="person" action="put" key="firstname" value="Max"/>
<sp:map name="person" action="put" key="email" value="max@mueller.de"/>
<sp:map name="person.address" action="put" key="street" value="Meierstr. 11"/>
<sp:map name="person.address" action="put" key="zip" value="12345"/>
<sp:map name="person.address" action="put" key="city" value="Musterstadt"/>
Adresse:
<sp:print name="person.firstname"/> <sp:print name="person.lastname"/> (<sp:print name="person.email"/>)
<sp:print name="person.address.street"/>
<sp:print name="person.address.zip"/> <sp:print name="person.address.city"/>
Ausgabe
Adresse:
Max Müller (max@mueller.de)
Meierstr. 11
12345 Musterstadt