Map (SP-Tag)

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

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.Eine Map kann entweder über sp:loop durchlaufen oder die einzelnen Werte können über den Schlüssel erfragt werden. Der Name des Schlüssels kann, getrennt durch einen Punkt an den 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 Attribute 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 das Attribute name 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"/>

Attribute

Name Type Required Default
name Variablename Ja None
action String Ja None
key Variablename Ja, für put None
value String Ja, für put None
object Variablename Ja, für put None
locale Locale Nein None
scope Scope Nein request
name
Name der Map. Ein Punkt trennt die Namen für verschachtelte Maps.
action
Aktion, die ausgeführt werden soll. Es existieren die Aktionen put, remove, new und clear.
put
Träg ein neues Schlüssel-Werte-Paar ein die Map ein. Existiert schon ein Eintrag mit dem angegebenen Schlüssel, so 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, der eingefügt, ersetzt oder gelöscht werden soll.
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ögiich (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