onConstructionFunction
- Für Seiten mit Sitzungsbereich wird die Page-Bean nur das erste Mal, wenn der Benutzer die Seite besucht, erstellt.
- Für Seiten mit Anforderungsbereich wird die Page-Bean jedesmal, wenn der Benutzer die Seite besucht, erstellt.
- Wenn die Eigenschaft cancelOnPageTransition des JSF-Handlers auf YES gesetzt ist, wird die Page-Bean aus der Sitzung entfernt, wenn der Benutzer auf eine andere Seite wechselt, selbst wenn die Eigenschaft scope auf session gesetzt ist. Deshalb wird die Page-Bean beim nächsten Seitenbesuch des Benutzers erneut erstellt.
Die angegebene Funktion wird ausgeführt, wenn ein anderer JSF-Handler oder ein Programm die Steuerung an den JSF-Handler übergibt. Diese Funktion darf nicht erneut ausgeführt werden, wenn der JSF-Handler die Steuerung an sich selbst weitergibt oder wenn eine Funktion im JSF-Handler beendet wird, ohne dass eine Anweisung forward ausgegeben wurde.
- onPreRenderFunction gibt eine Funktion an, die ausgeführt wird, bevor die Seite im Arbeitsspeicher gerendert wurde.
- onPostRenderFunction gibt eine Funktion an, die ausgeführt wird, nachdem die Seite im Arbeitsspeicher gerendert wurde, aber bevor sie in der Anzeige ausgegeben wird.
Wenn Sie Parameter für eine beliebige Funktion angeben, auf die diese Eigenschaften verweisen, müssen Sie dieselben Parameter für alle Funktionen angeben.
- Verwenden Sie einen Anforderungsbereich.
- Speichern Sie explizit alle Daten, die über das Ende der Gültigkeit der Anforderung hinaus erhalten bleiben sollen.
- Stellen Sie die Daten in der Funktion wieder her, die durch onConstructionFunction oder onPreRenderFunction angegeben ist.
Sie können eine Seite aus dem Sitzungsbereich mithilfe der 'j2eeLib'-Funktionen clearSessionAttr() und clearEGLSessionAttr() explizit entfernen (siehe clearSessionAttr() und clearEGLSessionAttrs()).
Einschränkungen
- Führen Sie keinen zeitaufwendigen Datenabruf in der während der Erstellung gültigen Funktion durch, weil JSF in bestimmten Situationen bei der Erstellung eines beliebigen Handlers in der Anwendung eine Synchronisierung startet. In diesem Fall beschränkt sich der Server auf die Erstellung jeweils einer Kopie der Page-Bean, selbst wenn viele Benutzer dieselbe Seite anfordern. Führen Sie in der während der Erstellung ausgeführten Funktion keinen Fernaufruf durch, da das Herstellen einer Verbindung mit der fernen Maschine sehr lange dauern kann. Für die vor dem Rendern ausgeführte Funktion gibt es diese Einschränkung nicht.
- Die Page-Bean wird nur erstellt, wenn der Server, der die Seite rendert, auf einen Verweis auf ein Feld oder eine Funktion im JSF-Handler trifft. Wenn in der Seite keine Felder an EGL-Variablen und keine Schaltflächen an EGL-Funktionen gebunden sind, erstellt JSF keine Page-Bean und die während der Erstellung ausgeführte Funktion wird nicht ausgeführt. Wenn in der Seite keine Felder an EGL-Variablen, aber eine Schaltfläche an eine EGL-Funktion gebunden ist, erstellt der Server die Page-Bean und führt die während der Erstellung ausgeführte Funktion nur aus, wenn der Benutzer die Schaltfläche zum ersten Mal drückt.
- Die während der Erstellung ausgeführte Funktion kann nicht auf die JSF-Komponentenbaumstruktur zugreifen, wie unter Zugriff auf Komponentenbaumstruktur erläutert.
- Die während der Erstellung ausgeführte Funktion kann keine Fehlernachricht für eine Komponente mit sysLib.setError() festlegen. Allerdings kann die Funktion sysLib.setErrorForComponentID() verwenden.
- Die während der Erstellung ausgeführte Funktion kann eine Anweisung forward to URL, aber keine Anweisung forward to label verwenden.
Beispiel
Im folgenden Beispiel wird die Eigenschaft im Kontext eines JSF-Handlerabschnitts dargestellt:
Handler handler01 type JSFHandler
{ onConstructionFunction="resetVars" }
...
Function resetVars()
...
end
end
Kompatibilität
| Datenelement | JSF-Handler | VGUI-Datensatz | Konsol-UI | Textformular Java™ | Textformular COBOL | Druckformular Java | Druckformular COBOL |
|---|---|---|---|---|---|---|---|
| Nein | Ja | Nein | Nein | Nein | Nein | Nein | Nein |