Anfang des Inhaltsbereichs

Hintergrunddokumentation Lebensdauer  Dokument im Navigationsbaum lokalisieren

Controller

Die Lebensdauer von Komponenten bzw. deren Controller wird wie gewohnt über die Registerkarte Eigenschaften des Controllers festgelegt. Unter Zustand können Sie die Lebensdauer als eine der drei folgenden Möglichkeiten angeben:

Üblicherweise ist die Einstellung hier bis zum Seitenwechsel.

Standardmäßig ist die Lebensdauer von Controller-Instanzen auf den einen Aufruf beschränkt. Wenn jedoch die Controller-Instanz mit id übergeben wird, dann ist die Lebensdauer so, wie sie bei den Eigenschaften des Controllers angegeben ist (Registerkarte Eigenschaften). Die id kann wie folgt angegeben werden:

Achtung

Die controller_id bzw. die comp_id des <bsp:call>-Elements darf keinen Unterstrich (‘_ ‘) enthalten.
Der Unterstrich ist als Trenn-Zeichen zwischen Controllern reserviert.

Die Lebensdauer des obersten Controllers geht vom ersten CREATE_CONTROLLER für einen Sub-Controller bis zu DELETE_CONTROLLER des Sub-Controllers.

Wenn Sub-Controller zeitweise verdeckt werden sollen, damit sie für eine Zeitlang nicht beim Eventhandling mitmachen, dann verwenden Sie die Methode CONTROLLER_SET_ACTIVE. Ein so auf inaktiv gesetzter Controller wird nicht bei der Eingabeverarbeitung aufgerufen.

Hinweis

Dieser verdeckte Controller ist nur versteckt, die Controller-Instanz wird nicht gelöscht.

Views

Achtung

Dieser Abschnitt über die Lebensdauer von Views bezieht sich auf die Verwendung von MVC in SAP Web AS 6.20 bis einschließlich Support Package 9.

Anders als Controller oder Seiten haben Views nur eine sehr kurze Lebensdauer. Ihr Lebenszyklus sieht folgendermaßen aus:

  1. Sie werden erzeugt.
  2. Sie werden mit Parametern versorgt.
  3. Sie werden aufgerufen.
  4. Nun werden sie nicht mehr benötigt und verfallen daher, d.h. Views können nicht wiederverwendet werden.

Also existieren Views lediglich für die Dauer des Aufrufs, d.h. sie werden nach dem Aufruf zerstört.

Als Entwickler von BSP-Anwendungen mit MVC müssen Sie also den View explizit jedes Mal neu anlegen, da Sie ihn nicht in einem Controller wiederverwenden können. Im Folgenden sehen Sie ein Beispiel für falsches und für richtiges Koding:

Schreiben Sie:

Schreiben Sie nicht:

DATA: view TYPE REF TO if_bsp_page.
view = create_view( view_name = 'main.htm' ).
DATA: view TYPE REF TO if_bsp_page.
IF view IS NOT BOUND. " or IS NOT INITIAL.
    view = create_view( view_name = 'main.htm' ).
ENDIF.

Achtung

In jedem Fall muss der View explizit neu angelegt werden, bevor er verwendet werden soll.

DATA: view TYPE REF TO if_bsp_page.
view = create_view( view_name = 'main.htm' ).
" ... set attributes ....
call_view( page ).
CLEAR view.

Ende des Inhaltsbereichs