Komplexe BSP-Applikationen, die auf dem MVC Design Pattern basieren, zeichnen sich durch viele und umfangreiche Bestandteile aus. Jedes einzelne Teil, aus dem sich eine komplexe BSP-Applikation zusammensetzt, beinhaltet ausgefeilte Anwendungslogik und durchdachte Präsentationslogik. Es ist sinnvoll, die einzelnen BSP-Bestandteile in Form von wiederverwendbaren Modulen zu erstellen. Diese wiederverwendbaren Module sind:
· Controller
· ein oder mehrere Views
· ein Model
Zusammen bilden sie eine Komponente.
Komponenten stehen nur für stateful BSP-Applikationen zur Verfügung.
Die Verwendung von Komponenten ist in das MVC Design Pattern integriert.
Sie befinden sich in einem SAP Web AS 6.20 Umfeld.
Eine Komponente besteht aus einem Controller, dessen Klasse von CL_BSP_CONTROLLER2 abgeleitet ist, sowie einem oder mehreren Views, wobei es zu regelrechten Verschachtelungen kommen kann. Dies ist in der folgenden Abbildung skizziert:
Zentrale Features von Komponenten sind:
· Bei Komponenten kommt es zu komplexen Aufruf-Folgen während eines HTTP-Requests.
· Die einzelnen Teile, aus denen sich eine Seite im Browser zusammensetzt, werden während der Laufzeit dynamisch zusammengebaut.
· Eine Komponente kann von einer anderen Komponente aus aufgerufen werden. Daher sollte sie in einen View platziert werden. Dies geschieht über das <bsp:call>-Element.
· Die Initialisierung kann vom Controller mit der Methode create_controller aufgerufen werden. Diese Methode steht für alle Controller-Klassen zur Verfügung. Sie erzeugt einen Controller oder findet ihn, sofern er bereits existiert.
· Der Parent-Controller enthält eine Liste der einzelnen Unter-Controller und leitet alle Eingaben an den jeweils passenden Controller weiter. Dies geschieht über die Präfigierung aller IDs mit dem Pfad der Controller-IDs.
· Für sich allein betrachtet formen Controller einen hierarchischen Baum. Jeder Controller kontrolliert seinen View/seine Views, sein Model sowie die Liste der Unter-Controller.
· Die Kontrolle der Unter-Controller wird von der Basisklasse CL_BSP_CONTROLLER2 ausgeführt. Dagegen wird die Kontrolle des Views und des Models vom jeweiligen Controller-Entwickler übernommen.
Wenn Sie Datenbindung-Funktionalität verwenden möchten, dann können Sie Ihrer Komponente eine Model-Klasse hinzufügen. Weitere Informationen finden Sie unter Datenbindung.
...
1. Sie erstellen den obersten Controller
2. Sie legen eine Komponente an
3. Sie rufen die Komponente auf
4. Sie legen die Eingabeverarbeitung fest