Navigation implicite dans JSF 2.0

Navigation implicite dans JSF 2.0

Dans JSF 1.2, toutes les pages de navigation doivent être déclarées dans le fichier «faces-config.xml» comme ceci:

...

   page1.xhtml
   
       page2
       /page2.xhtml
   

...

Dans JSF 2, il traite «résultat» comme le nom de la page, par exemple, accédez à «page1.xhtml», vous devez mettre le «résultat» comme «page1». Ce mécanisme s'appelle «Implicit Navigation», où vous n'avez pas besoin de déclarer la règle de navigation fastidieuse, à la place, mettez simplement le «résultat» dans l'attribut action directement et JSF trouvera les «view id corrects» »Automatiquement.

Il existe deux façons d'implémenter la navigation implicite dans JSF 2.

1. Résultat dans la page JSF

Vous pouvez mettre le «résultat» directement dans la page JSF.

page1.xhtml - Une page JSF avec un bouton de commande pour passer de la page actuelle à «page2.xhtml».


    

Une fois que vous avez cliqué sur le bouton, JSF fusionnera la valeur de l'action ou le résultat, «page2» avec l'extension «xhtml», et trouvera le nom de la vue «page2.xhtml» dans le «page1.xhtml ”.

2. Résultat dans le bean géré

En outre, vous pouvez également définir le «résultat» dans un bean géré comme ceci:

PageController.java

@ManagedBean
@SessionScoped
public class PageController implements Serializable {

    public String moveToPage2(){
        return "page2"; //outcome
    }
}

Dans la page JSF, attribut d'action, il suffit d'appeler la méthode en utilisant «method expression».

page1.xhtml


    

Redirection

Par défaut, JSF 2 effectue un transfert avant de naviguer vers une autre page, il en résulte que l'URL de la page est toujours derrière :). Par exemple, lorsque vous passez de «page1.xhtml» à «page2.xhtml», la barre d'adresse URL du navigateur affichera toujours la même URL «page1.xhtml».

Pour éviter cela, vous pouvez dire à JSF d'utiliser la redirection en ajoutant le «faces-redirect=true» à la fin de la chaîne «résultat».


    

Note
Pour une navigation simple dans les pages, cette nouvelle navigation implicite est plus que suffisante; Pour une navigation de page complexe, vous êtes toujours autorisé à déclarer le flux de page (règle de navigation) dans le fichierfaces-config.xml.

Télécharger le code source

Téléchargez-le -JSF-2-Implicit-Navigation-Example.zip (10 Ko)