Beispiel für eine JSF-Vorgangsnavigationsregel
In der JSF-Navigationsregel kann es vorkommen, dass zwei separate Aktionen auf einer Seite dieselben „outcome“ zurückgeben. In diesem Fall können Sie das Element "from-action" verwenden, um die beiden Navigationsfälle zu unterscheiden. Siehe folgendes Beispiel:
1. Managed Bean
Eine verwaltete Bean mit zwei Aktionen, die dasselbe Ergebnis liefern - "Erfolg".
PageController.java
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;
@ManagedBean
@SessionScoped
public class PageController implements Serializable {
private static final long serialVersionUID = 1L;
public String processPage1(){
return "success";
}
public String processPage2(){
return "success";
}
}
2. JSF Seite
Eine JSF-Seite mit 2 Schaltflächen, die mit den oben genannten Methoden vonPageControllerverknüpft sind.
start.xhtml
This is start.xhtml
Beide Aktionen führen zu demselben „Erfolgsergebnis“. Wie kann JSF bestimmen, wohin es gehen soll?
3. Navigationsregel
Um dies zu lösen, definieren Sie die folgenden Navigationsregeln in „faces-config.xml“ und verwenden Sie das Element „from-action“, um dieselben Navigationsfälle mit „Ergebnis“ zu unterscheiden.
faces-config.xml
start.xhtml #{pageController.processPage1} success page1.xhtml #{pageController.processPage2} success page2.xhtml
4. Demo
In obigem Fall funktioniert die Schaltfläche folgendermaßen:
-
Wenn Sie auf die Schaltfläche mitaction=”#\{pageController.processPage1}” klicken, wird das Ergebnis "Erfolg" zurückgegeben und zupage1.xhtml verschoben
-
Wenn Sie auf die Schaltfläche mitaction=”#\{pageController.processPage2}” klicken, wird das Ergebnis "Erfolg" zurückgegeben und zupage2.xhtml verschoben
Quellcode herunterladen
Laden Sie es herunter -JSF-2-From-Action-Navigation-Example.zip (11 KB)