Exemple de règle de navigation JSF «from-action»

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:

  1. Lorsque le bouton avecaction=”#\{pageController.processPage1}” est cliqué, il renverra le résultat «succès» et passera àpage1.xhtml

  2. 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)