2015-11-17 1 views
1

Je voudrais après avoir cliqué sur le bouton de sauvegarde, enregistrer les données et rediriger l'utilisateur vers la page corbeille. Ceci est mon implémentation actuelle:commandButton double action: enregistrer et rediriger vers une autre page

<a4j:commandButton styleClass="boutonAction buttonSaveDossierAppel" 
value="#{messages['save.btn.save.label']}" 
update="editForm" 
action="#{consultDossier.save()}"        
disabled="#{editDossier.isEditAccess() == 'false'}" 
ajaxSingle="false" immediate="false" limitToList="true"               
reRender="msg" /> 

J'ai essayé avec ceci:

<a4j:commandButton styleClass="boutonAction buttonSaveDossierAppel" 
value="#{messages['save.btn.save.label']}" 
update="editForm" 
action="#{consultDossier.save()}" 
action="#{commonNavigationAction.manageAccessibility('E53CORBEILLE')}"       
disabled="#{editDossier.isEditAccess() == 'false'}" 
ajaxSingle="false" immediate="false" limitToList="true"               
reRender="msg" /> 

il ne fonctionne pas!

Comment est-ce que je peux faire ceci?

+0

N'avez qu'une seule action. Avoir le type de retour de méthode de sauvegarde en tant que chaîne. Après avoir enregistré les valeurs, renvoyez le chemin d'accès à votre page d'accueil ou le cas de navigation à votre page d'accueil. Par exemple, return "welcome.xhtml? Redirect-faces = true" –

+0

Ou vous pouvez faire save() dans actionListener et avoir action = "welcome.xhtml? Redirect-faces = true" –

+0

@Mahendran: rien dans la question n'indique que OP est en utilisant JSF 2.x. De plus, l'attribut 'reRender' implique RichFaces 3.x, ce qui suggère fortement JSF 1.x. La balise [jspx] sur la question ne confirme JSF 1.x plus que JSP est dépréciée dans JSF 2.x et aucun développeur sain d'esprit ne l'utiliserait dans JSF 2.x. Il vaut mieux demander à OP quelle version de JSF exactement il utilise avant de suggérer des solutions spécifiques à JSF 2.x. – BalusC

Répondre

1

La manière la plus simple: Renvoyez simplement le chemin complet de votre page d'accueil sur votre méthode consultDossier.save().

public String save(){ 
    //Save....// 
    return "welcomepage.xhtml" 
} 
+0

OP a demandé d'effectuer une redirection, pas un renvoi. – BalusC

+0

Je suis d'accord avec BalusC et je voudrais gérer cela via mon jspx –

0

Pour activer la redirection de la page il suffit d'ajouter « ? Visages-redirect = true » à la fin du retour de la chaîne sur le haricot. Comme indiqué par BallusC, cette réponse fonctionne uniquement dans JSF 2.x, désolé. Vous pouvez utiliser l'attribut onComplete du bouton a4j pour exécuter la redirection, quelle version de JSF utilisez-vous?

tag documentation

+0

Cette réponse fonctionne uniquement dans JSF 2.x. OP n'a nulle part laissé entendre/confirmer qu'il utilise JSF 2.x. – BalusC

+0

J'utilise jsf 1.2 –

+0

Depuis que je suis nouveau à JSF, je n'ai pas travaillé avec des versions avant 2.0 et ne peux pas faire beaucoup pour vous aider. A propos du bouton a4j, comme indiqué ci-dessus 2 actions ne fonctionneront pas, vous pouvez essayer de changer le second à l'attribut onComplete, il va exécuter sa méthode après la fin de la requête. Bonne chance et j'espère que votre problème sera bientôt résolu –