Exemple de règle de navigation JSF «à partir de l'action»
Dans la règle de navigation JSF, vous pouvez rencontrer une situation dans laquelle deux actions distinctes renvoient un même «outcome» dans une seule page. Dans ce cas, vous pouvez utiliser l'élément «from-action» pour différencier les deux cas de navigation. Voir l'exemple suivant:
1. Bean géré
Un bean géré, avec deux actions qui renvoient un même résultat - «succès».
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. Page JSF
Une page JSF, avec 2 boutons liés aux méthodes dePageController ci-dessus.
start.xhtml
This is start.xhtml
Les deux actions renverront le même résultat «succès», comment JSF détermine où aller?
3. Règle de navigation
Pour le résoudre, définissez les règles de navigation suivantes dans les «faces-config.xml», et utilisez l'élément «from-action» pour différencier les mêmes cas de navigation «résultats».
faces-config.xml
start.xhtml #{pageController.processPage1} success page1.xhtml #{pageController.processPage2} success page2.xhtml
4. Demo
Dans le cas ci-dessus, le bouton fonctionne comme ceci:
-
Lorsque le bouton avecaction=”#\{pageController.processPage1}” est cliqué, il renverra le résultat «succès» et passera àpage1.xhtml
-
Lorsque le bouton avecaction=”#\{pageController.processPage2}” est cliqué, il renverra le résultat «succès» et passera àpage2.xhtml
Télécharger le code source
Téléchargez-le -JSF-2-From-Action-Navigation-Example.zip (11 Ko)