Überlegungen zu 'forward' für JSF

Im Kontext von JSF wird die EGL-Anweisung forward verwendet, um die Steuerung an eine Webseite oder eine Navigationsregel in der Faces-Konfigurationsdatei Ihres Webprojekts zu übergeben. Die Faces-Konfigurationsdatei listet die Regeln und die Seiten auf, für die diese Regeln gelten. Sofern nicht anders vorgegeben, entspricht der Name der Regel bei einer Weiterleitung an einen JSF-Handler dem Namen des JSF-Handlers. Die Navigationsregel kann unter Umständen auch auf ein Servlet, eine Webseite oder ein Java™-Programm zeigen. Weitere Informationen finden Sie unter Mit Navigationsregeln zwischen Webseiten navigieren.

Die Anweisung forward führt die folgenden Aktionen aus:
  1. Sie schreibt wiederherstellbare Ressourcen fest, schließt Dateien und hebt Sperren auf.
  2. Sie gibt die Steuerung an die angegebene Navigationsregel weiter.
  3. Sie beendet den Code, der die Anweisung forward ausführt.

In den Funktionen, die in den Eigenschaften onConstructionFunction, onPreRenderFunction oder onPostRenderFunction eines JSF-Handlers definiert sind, können Sie zwar forward to URL, aber nicht forward to label verwenden.

Syntax

Syntaxdiagramm für die Anweisung 'forward'
parameter
Eine Variable, die an den JSF-Handler oder eine andere Seite bzw. ein anderes Programm übergeben wird. Die Namen eines Parameters und die zugehörigen Argumente müssen in allen Fällen identisch sein (der Name wird als Schlüssel für die Speicherung und den Abruf des Argumentwerts auf dem Webanwendungsserver verwendet). Wenn Sie Parameter an einen Seitenhandler übergeben, müssen diese Parameter mit den Argumenten für die Funktion kompatibel sein, die in der Eigenschaft onConstructionFunction oder im JSF-Handler angegeben wird. Literale dürfen nicht übergeben werden.
navigationRule
Gibt eine Navigationsregel in der Faces-Konfigurationsdatei (faces-config.xml) an, die wiederum das aufzurufende Objekt angibt, unabhängig davon, ob es sich dabei um eine JSP (üblicherweise einem EGL-JSF-Handler zugeordnet), ein EGL-Programm, ein Nicht-EGL-Programm oder ein Servlet handelt. Das Wort label ist optional und navigationRule ist ein Textausdruck.
pageURL
Gibt eine URL und (falls erforderlich) eine Zeichenfolge von Werten an, die von dem aufgerufenen JSF-Handler, dem 'VGWebTransaction'-Programm oder dem Servlet verwendet werden. pageURL ist ein Textausdruck. Wenn es sich um eine absolute URL handelt (d. h. wenn sie den Domänennamen enthält), implementiert EGL die Anweisung forward als HTTP-Redirect. Wenn es sich um eine relative URL (d. h. auf demselben Server) handelt, implementiert EGL die Anweisung forward als HTTP-Dispatch, es sei denn, der Ausdruck enthält das Schlüsselwort -redirect (wie im folgenden Beispiel):
forward to URL "/TestProject/TestPage2.html -redirect";

Beispiel

Im folgenden Beispiel wird die Steuerung an eine Navigationsregel namens 'myPage' in der Faces-Konfigurationsdatei übertragen. Diese Regel zeigt ihrerseits auf einen JSF-Handler namens myPage.jsp, der die Steuerung empfängt.
forward to label "myPage";

Feedback