JSF-Handler-Abschnitt
- Datenwerte für die Übergabe an eine JSP-Datei (JavaServer Pages) zuweisen. Diese Werte werden letztlich auf einer Webseite angezeigt.
- Vom Benutzer oder einem aufgerufenen Programm zurückgegebene Daten ändern.
- Die Steuerung an eine andere JSP-Datei weiterleiten.
Der JSF-Handler selbst enthält Variablen und die folgenden Arten von Logik:
- Eine Funktion, die während der Erstellung ausgeführt (onConstructionFunction) und aufgerufen wird, wenn die JSP zum ersten Mal die Webseite rendert. Weitere Informationen finden Sie unter onConstructionFunction.
- Eine Funktion, die vor der Darstellung ausgeführt (onPreRenderFunction) und jedes Mal aufgerufen wird, bevor die Seite gerendert wird. Weitere Informationen finden Sie unter onPreRenderFunction.
- Eine Funktion, die nach der Darstellung ausgeführt (onPostRenderFunction) und aufgerufen wird, nachdem die Seite gerendert wurde, aber bevor sie angezeigt wird. Weitere Informationen finden Sie unter onPostRenderFunction.
- Eine Gruppe von Ereignishandlerfunktionen, die jeweils als Reaktion auf eine bestimmte Benutzeraktion aufgerufen werden (d. h. wenn der Benutzer auf eine Schaltfläche oder einen Hypertext-Link klickt).
- Auswertungsfunktionen zur Auswertung von Eingabefeldern (optional).
- Private Funktionen, die nur von anderen JSF-Handler-Funktionen aufgerufen werden können.
- Die Laufzeitumgebung greift automatisch auf die Daten zu. Wenn ein Feld in der JSP an ein Feld im JSF-Handler gebunden ist, sieht das Ergebnis wie folgt aus:
- Nachdem die während der Erstellung gültige Funktion ausgeführt, aber bevor die Webseite angezeigt wird, wird jeder Wert eines JSF-Handler-Felds in das JSP-Feld geschrieben, an das die Daten gebunden sind.
- Wenn der Benutzer ein Formular übergibt, in dem sich die gebundenen JSP-Felder befinden, werden die Werte in den einzelnen Feldern des übergebenen Formulars in die zugeordneten JSF-Handler-Felder kopiert. Erst dann wird die Steuerung an einen Ereignishandler übergeben. Es kann auch eine Auswertung erforderlich sein, bevor der Ereignishandler die Steuerung übernimmt. Weitere Informationen finden Sie unter dem Stichwort 'Auswertung' in diesem Thema.
- Die Ereignishandler und die während der Erstellung gültige Funktion können auch mit den Daten, Datenspeichern (wie SQL-Datenbanken) und aufgerufenen Programmen interagieren.
Halten Sie den JSF-Handlerabschnitt einfach. Auch wenn der Abschnitt einfache Datenauswertungen wie Bereichsprüfungen enthalten kann, sollten Sie andere Programme aufrufen, um komplexe Geschäftsabläufe auszuführen. Greifen Sie beispielsweise nur in einem aufgerufenen Programm auf die Datenbank zu.
Einem JSF-Handler zugeordnete Ausgaben
- Sie haben einen Wert einer Eigenschaft view des JSF-Handlers zugewiesen, die einen JSP-Dateinamen angibt.
- Der Ordner 'WebContent\WEB-INF' enthält keine JSP-Datei des angegebenen Namens.
Wenn Sie einen JSF-Handler generieren, überschreibt EGL nie eine JSP-Datei.
- Die Page-Bean ist eine Java™-Klasse, die Daten enthält und eine Initialisierung, Datenauswertung sowie Services für die Ereignisverarbeitung für die Webseite bereitstellt. In der Dokumentation zu Laufzeitereignissen bezeichnet der Terminus JSF-Handler manchmal die Page-Bean.
- Ein <managed-bean>-Element wird in der JSF-Konfigurationsdatei in Ihrem Projekt platziert, um die Page-Bean zur Laufzeit anzugeben.
- Ein <navigation-rule>-Element wird in der Konfigurationsdatei der JSF-Anwendung erstellt, um eine JSF-Ausgabe (Name des JSF-Handlers) der aufzurufenden JSP-Datei zuzuordnen. Siehe 'Seitennavigation'.
- Eine JSP-Datei wird generiert, wenn Sie den JSF-Handler speichern.
Alle Datentabellen und Datensätze, die von dem JSF-Handler verwendet werden, werden ebenfalls generiert.
Auswertung
- Elementare Bearbeitungen (z. B. minimale Eingabelänge) für einzelne Eingabefelder.
- Typbasierte Bearbeitungen (Zeichen, Ziffern) für einzelne Felder.
- Bearbeitungen in der Datentabelle (Bereich, gültige Übereinstimmung, ungültige Übereinstimmung) für einzelne Eingabefelder (siehe 'Datentabellenabschnitt').
- Die 'onValueChange'-Funktion für ein einzelnes Eingabefeld.
- Alle Validator-Funktionen werden für die einzelnen Eingabefelder ausgeführt, selbst wenn manche dieser Auswertungen fehlschlagen.
- Wenn alle Validator-Funktionen erfolgreich sind, wird die Validator-Funktion für den JSF-Handler als Ganzes ausgeführt.
Wenn eine Validator-Funktion einen Fehler findet, kann die Funktion die Steuerung an eine andere Webseite weiterleiten, aber das Standardverhalten ist die erneute Anzeige derselben Webseite.
Die Eigenschaft validationOrder auf Feldebene definiert die Reihenfolge, in der die feldspezifischen EGL-Validator-Funktionen aufgerufen werden. Die Eigenschaft wirkt sich nicht auf die Reihenfolge der zuvor ausgeführten onValueChange-Funktionen aus.
Wenn keine validationOrder-Eigenschaften angegeben sind, ist der Standardwert die Reihenfolge von Feldern, die in dem JSF-Handler definiert sind, von oben nach unten. Wenn validationOrder für manche, aber nicht alle Felder in einem JSF-Handler definiert ist, werden zunächst alle Felder mit der Eigenschaft validationOrder in der angegebenen Reihenfolge ausgewertet. Anschließend werden die Felder ohne die Eigenschaft validationOrder in der Reihenfolge der Felder im JSF-Handler, von oben nach unten, ausgewertet.
JSF-Bereiche
Dieser Abschnitt enthält Informationsmaterial aus IBM® Rational Business Developer with EGL (http://www.mc-store.com/5087.html).
Die JSF-Laufzeit weist den EGL-JSF-Handler einem von drei möglichen Bereichen zu, die jeweils die Lebensdauer einer Managed Bean definieren. Die Bereiche entsprechen den drei möglichen Werten der Eigenschaft scope: 'request' (Anforderung), 'session' (Sitzung) und 'application' (Anwendung). Die drei Bereiche stehen auch Ihnen zur Verfügung und ermöglichen ein temporäres Speichern während der Übertragung von Daten aus einer Funktion in eine andere in demselben oder einem anderen EGL-JSF-Handler:
- Der Anforderungsbereich ist ab dem Zeitpunkt, an dem die JSF-Laufzeit eine Anforderung vom Benutzer empfängt, bis zu dem Zeitpunkt, an dem Ihr Code auf diesen Benutzer reagiert, verfügbar. Ein EGL-JSF-Handler im Anforderungsbereich stellt Ihnen möglicherweise den Status eines bestimmten Auftrags als Reaktion auf eine Benutzeranforderung bereit. Sie können Daten im Anforderungsspeicher unabhängig vom Wert der Eigenschaft scope ablegen.
- Der Sitzungsbereich ist ab dem Zeitpunkt, an dem die JSF-Laufzeit Daten vom Benutzer empfängt, bis zu dem Zeitpunkt, an dem die Serversitzung ungültig wird, verfügbar und unterstützt in dieser Zeit mehrere Benutzer-Code-Interaktionen. Die Serversitzung kann auf verschiedene Weisen ihre Gültigkeit verlieren, z. B. aufgrund einer Sitzungszeitlimitüberschreitung oder weil der EGL-JSF-Handler auf dem Webanwendungsserver neu gestartet — neu initialisiert — wird. Ein Handler im Sitzungsbereich enthält möglicherweise eine Auftragsnummer, die für eine Reihe von Interaktionen erforderlich ist. Sie können Daten im Sitzungsbereich speichern, wenn der Wert der Eigenschaft scope 'session' oder 'application' lautet.
- Der Anwendungsbereich ist ein Bereich mit mehreren Benutzern und ist ab dem Zeitpunkt, an dem eine Webanwendung für einen beliebigen Benutzer gestartet wird, bis zu dem Zeitpunkt, an dem die Anwendung beendet wird, verfügbar. Ein EGL-JSF-Handler im Anwendungsbereich enthält möglicherweise die nächste verfügbare Auftragsnummer. Sie können Daten im Anwendungsbereich speichern, wenn der Wert der Eigenschaft scope 'application' lautet.
- j2eeLib.setRequestAttr()
- j2eeLib.getRequestAttr()
- j2eeLib.clearRequestAttr()
Die Namen der entsprechenden Funktionen für den Sitzungs- oder Anwendungsbereich sind identisch, z. B. j2eeLib.setSessionAttr().