2011-07-04 3 views
2

J'étudie actuellement JSF dans mon travail actuel. Dans le passé, en utilisant Spring et Struts, je fais toujours un PRG (Post-Redirect-Get) chaque fois que je fais quelque chose qui pourrait potentiellement mettre à jour le modèle.Mise en œuvre de PRG sur JSF

En JSF, j'ai lu que la structure fait une requête directe en interne. Donc est-il sûr de supposer que je devrais ajouter une redirection dans les transactions qui pourraient potentiellement mettre à jour le modèle?

Mon utilisation par exemple. J'ai un JSP qui affichent des produits dans le panier, l'utilisateur peut effectuer une transaction de paiement. Je ne veux pas les payer deux fois si je veux effectuer redirigent

<navigation-rule> 
    <from-view-id>/viewCart.jsp</from-view-id> 
    <navigation-case> 
     <from-outcome>pay</from-outcome> 
     <to-view-id>/successPay.jsp</to-view-id> 
     </redirect> 
    </navigation-case> 
</navigation-rule> 

Je me inquiète de l'utilisateur à l'aide de leur bouton Précédent ou actualisez le navigateur?

Est-ce que ma pensée correcte ou il existe une alternative dans JSF pour ces cas Merci.

Répondre

1

Oui, ajouter <redirect/> est l'une des bonnes façons de faire un PRG.

D'autres façons d'appeler manuellement impliquent ExternalContext#redirect() dans la méthode d'action de haricots, ou (dans JSF 2.x uniquement) en ajoutant le paramètre faces-redirect=true à la (navigation implicite) la valeur des résultats, ce qui peut aussi être fait par un custom configurable navigation handler.

+0

Merci de votre aide! –

+0

De rien. – BalusC