JSF-Handler-Abschnitt

Ein EGL-Abschnitt JSF-Handler steuert eine Benutzerinteraktion mit einer Webseite zur Laufzeit und kann folgende Aufgaben ausführen:

Der JSF-Handler selbst enthält Variablen und die folgenden Arten von Logik:

Auf die Variablen im JSF-Handler kann auf zwei Arten zugegriffen werden:

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

Wenn Sie einen JSF-Handler speichern, platziert EGL eine JSP-Datei im Ordner 'WebContent\WEB-INF', allerdings nur unter den folgenden Bedingungen:
  • 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.

Wenn eine Workbenchvorgabe die automatische Erstellung bei Speicherung ist, tritt die JSF-Handler-Generierung bei jedem Speichervorgang des JSF-Handlers auf. In jedem Fall besteht die Ausgabe aus den folgenden Objekten, wenn Sie einen JSF-Handler generieren:
  • 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

Wenn die JSP-basierten Tags eine Datenkonvertierung, Auswertung oder Ereignisverarbeitung ausführen, startet die JSF-Laufzeit die erforderliche Verarbeitung, sobald der Benutzer die Webseite übergibt. Die folgenden EGL-basierten Auswertungen werden ausgeführt als handelte es sich um JSF-basierte Auswertungen:
  • 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.
Wenn die EGL-Laufzeit einen Fehler in früheren Auswertungen findet, zeigt der JSF-Laufzeitcode dieselbe Webseite mit eingebetteten Fehlernachrichten erneut an. Wenn alle früheren Auswertungen erfolgreich waren, werden die EGL-Validator-Funktionen wie folgt ausgeführt:
  1. Alle Validator-Funktionen werden für die einzelnen Eingabefelder ausgeführt, selbst wenn manche dieser Auswertungen fehlschlagen.
  2. 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.
Verschiedene Funktionen in der Bibliothek 'j2eeLib' erlauben das Speichern, Abrufen und Löschen von Daten in den Bereichen. Die folgenden Funktionen stehen beispielsweise für die Interaktion mit den im Anforderungsbereich gespeicherten Daten zur Verfügung:
  • j2eeLib.setRequestAttr()
  • j2eeLib.getRequestAttr()
  • j2eeLib.clearRequestAttr()

Die Namen der entsprechenden Funktionen für den Sitzungs- oder Anwendungsbereich sind identisch, z. B. j2eeLib.setSessionAttr().


Feedback