Réinitialiser le bean de sauvegarde JSF (View ou Session Scope)
Je veux réinitialiser par JSF backing bean quand une méthode est invoquée. Supposons qu'il existe un bouton de commande, appuyez sur quelqu'un et après réussie de la transaction, de mon point de Vue ou de portée Session bean JSF doit être réinitialisé. Est-il un moyen de le faire?
Remercier
source d'informationauteur Ahmet DAL
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la solution à portée de Vue.
Une vue étendue bean sera recréé lorsque vous revenez non-
null
ou nonvoid
à partir de la méthode de l'action, même si elle allait revenir à la même vue. Donc, il suffit de revenir unString
à partir de la méthode de l'action, même si c'est juste une chaîne vide:Pour la rendre complète, vous pourriez envisager d'envoyer une redirection en ajoutant le
?faces-redirect=true
chaîne de requête à l'renvoyé de résultat.Une session d'étendue de haricot est en premier lieu le mauvais champ d'application pour ce que vous êtes en train d'essayer de réaliser. De la fève à la question devait être d'une vue étendue. Ignorant que, vous avez juste à recréer le modèle de la méthode de l'action, ou peut-être très invalider la session (qui ne ferait que détruire toutes les autres vue de la session et de l'étendue des haricots, vous ne savez pas si c'est ce que vous êtes après, si).
juste effacer tous les points de vue:
FacesContext.getCurrentInstance().getViewRoot().getViewMap().clear();
et n'oubliez pas de implémente Serializable dans tous les points de vue
Vous pouvez également actualiser la page à partir de javascript, de sorte que le ViewScoped Bean sera réinitialisée, par exemple dans un primefaces bouton de commande: