Die JSF-Handlereigenschaft
onConstructionFunction gibt eine Funktion im JSF-Handler an, die ausgeführt wird, wenn die Seite zum ersten Mal erstellt wird. (Diese Eigenschaft hieß früher
onPageLoadFunction.)
Genauer gesagt wird die Funktion ausgeführt, wenn die Page-Bean (die den JSF-Handler im Web-Server darstellt) instanziiert (erstellt) wird.
- 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.
Vergleichen Sie die folgenden verwandten Eigenschaften:
- 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.
Wenn Sie einen Sitzungsbereich verwenden und
cancelOnPageTransition auf
NO setzen, platziert JSF den Handler in der Sitzung, bis das Sitzungszeitlimit überschritten oder die Sitzung beendet wird. Der Handler kann Daten für ungenutzte Felder oder andere nicht erforderliche Informationen enthalten. Möglicherweise können Sie Speicherplatz einsparen, wenn Sie Folgendes tun:
- 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()).