früher JavaServer Faces bzw. JSF
PrimeFaces, PrimeFlex, JavaScript API
statische Navigation
Ist das action-Attribut einer UICommand-Komponente schon bei der Erstellung der JSP-Seite bekannt, spricht man von statischer Navigation.
<h:commandLink action="links"> <h:outputText value="zur Linkseite" /> </h:commandLink> |
Der Wert des action-Attributs ist fest codiert. JSF schaut in der Konfigurationsdatei nach, ob es für die Seite, die diese Aktion ausgelöste hat, eine Navigationsregel gibt, welche einen Navigationsfall besitzt, der den Rückgabewert (Wert des action-Attributs) erwartet. Ist dies der Fall, wird auf die Folgeseite weitergeleitet. Ist keine entsprechende Regel definiert, wird die gleiche Seite nochmal angezeigt.
dynamische Navigation
<h:commandLink action="#{LinkList.update}"> <h:outputText value="zur Linkseite" /> </h:commandLink> |
Bei der dynamischen Navigation wird beim action-Attribut auf eine Methode verwiesen. Diese muss folgende Anforderungen erfüllen:
- Sie muss öffentlich (public) sein.
- Sie muss in einer Managed-Bean definiert sein und dieses muss in der Anwendungskonfigurationsdatei registriert sein.
- Sie darf keine Parameter erwarten.
- Sie muss einen String als Rückgabewert liefern.
In der faces-config.xml wird nach einem Navigationsfall gesucht, dessen
<from-outcome>-Attribut mit dem Rückgabewert der Methode übereinstimmt. Ist dies der Fall, wird auf die entsprechende Seite weitergeleitet, ansonsten auf die auslösende Seite zurückverwiesen.
Cancel
Verwendet man Konverter oder Validatoren kann es vorkommen, das man eine Seite verlassen möchte auch wenn die Validierung fehlschlägt. Das Attribut immediate verhindert ein Update des Modells.
<h:commandButton immediate="true" action="success" value="Cancel" /> |