
Wenn innerhalb einer View Daten genutzt werden sollen welche im Context des Component-Controllers abgelegt sind ist es nötig, den gewünschten Knoten des Contexts der View mit dem entsprechenden Knoten des Contexts des Component-Controllers in Verbindung zu bringen. Man nennt diesen Vorgang die "Definieren eines Mappings". Lesen Sie hierzu auch das KapitelDatenbindung und Mapping im Architekturhandbuch für Web Dynpro.
Die folgende Graphik verdeutlicht noch einmal das Prinzip:
Der Context von View 1 des graphischen Beispiels enthält zwei Knoten unterhalb des Wurzelknotens:
Vorgehalten werden die Daten nur einer Stelle, nämlich genau in dem Context, auf den letztlich gemappt wird.
Im KapitelEreignisbehandler von Aktionen wurde als einfaches Beispiel der Aufbau einer Flugliste aus einer Datenbanktabelle in die Tabelle der Benutzungsoberfläche beschrieben. Dieses Beispiel soll nun erneut genutzt werden um das Prinzip des Mappings zu veranschaulichen:
Die Erweiterung der Fluglisten-Anwendung
Die im oben genannten Kapitel beschriebene Anwendung nutzt das Layout ihrer View für die Darstellung an der Benutzungsoberfläche sowie den zugehörigen View-Controller zur Beschaffung und Ablage der beteiligten Daten. Da sowohl der Context als auch die Methoden eines View-Controllers lokal, also ausschließlich innerhalb des Controllers sichtbar sind, können andere Views der selben Component keinen Nutzen aus diesen Inhalten ziehen. Um dieses zu ermöglichen sollen sowohl die Daten als auch die Methoden zu ihrer Beschaffung in den Component-Controller verlagert werden. Die folgende Graphik zeigt schematisch die neue Context-Struktur der Component:
Nachdem die beiden Knoten mit ihren Attributen im Context des Component-Controllers angelegt worden sind, kann ein Mapping der entsprechenden Knoten des View-Contextes auf diese beiden neuen Knoten definiert werden. Eine genaue Beschreibung des Vorgangs sowie Hinweise zu eventuellen Einschränkungen finden Sie im Werkzeughandbuch im KapitelMapping definieren. Wann immer sich nun der Wert eines Attributes in einem der beiden Contexte ändert, ist diese Änderung automatisch für beide Contexte wirksam. Für geeignete Context-Knoten einer optionalen zweiten View kann nun ebenfalls ein Mapping auf die passenden Knoten des Component-Controller-Contextes definiert werden sodass auch dieser zweite View-Context alle Änderungen innerhalb dieses "Mapping-Verbunds" erfährt.
Im nächsten Schritt der Erweiterung dieses Beispiels soll nun die Datenbeschaffung für die Flugtabelle ebenfalls in den Component-Controller verlagert werden. Eine Beschreibung der nötigen prinzipielle Schritte finden Sie im folgenden KapitelController-übergreifender Methodenaufruf.
Weitere Information zum Thema "Mapping" finden Sie im Architekturhandbuch Web Dynpro.
Definieren eines Mappings
Um für den Context eines View-Controllers ein Mapping zu definieren haben Sie verschiedene Möglichkeiten. In jedem Fall geschieht dies jedoch auf der Registerkarte Context der View, die Sie gerade bearbeiten. Lesen Die dazu mehr im Werkzeughandbuch im KapitelMapping definieren.