2010-12-08 26 views
1

Pouvez-vous contrôler le bouton de retour du navigateur en utilisant la navigation JSF faces-config? Lorsque le bouton de retour est appuyé sur le navigateur que vous souhaitez utiliser la navigation comme suit pour contrôler quelle page à afficher:Pouvez-vous contrôler le bouton de retour du navigateur en utilisant la navigation JSF faces-config?

<navigation-rule> 
    <from-view-id>/pageThree.xhtml</from-view-id> 
    <navigation-case> 
    <from-outcome>back</from-outcome> 
    <to-view-id>/pageOne.xhtml</to-view-id> 
    </navigation-case> 
</navigation-rule> 

Répondre

1

Non, vous ne pouvez pas. Ce n'est déjà pas possible avec HTML/JS, donc JSF ne peut pas faire grand chose pour vous ici.

Le mieux est de conditionnellement afficher le contenu de pageTwo.xhtml dans pageOne.xhtml, basé sur une condition JS/ajax. De cette façon, il n'y a pas de requête GET sur pageTwo.xhtml dans l'historique du navigateur.

Voici un exemple de coup d'envoi de base avec JS plaine:

<div id="one"> 
    <h1>Page one</h1> 
    <p><a href="#" onclick="showPageTwo()">Go to page two</a></p> 
</div> 
<div id="two" style="display: none;"> 
    <h1>Page two</h1> 
    <p><a href="pageThree.xhtml">Go to page three</a></p> 
</div> 

avec

<script> 
    function showPageTwo() { 
     document.getElementById("one").style.display = 'none'; 
     document.getElementById("two").style.display = 'block'; 
    } 
</script> 

Ceci est également facile avec JSF 2.0 ajax et l'attribut rendered.