JSF 2 ViewScope questions
Citant ce l'article de nice,
La nouvelle portée de vue devrait résoudre
exactement ces questions. @ViewScoped
bean vivent aussi longtemps que vous êtes
la soumission du formulaire pour le même point de vue
encore et encore. En d'autres termes, comme
longtemps que lorsque la méthode action(s)
renvoie la valeur null ou même nulle, le haricot
sera là à la prochaine demande.
Une fois que vous accédez à un autre point de vue,
puis la fève sera mis à la corbeille.
Et ces questions viennent à l'esprit:
- Si ma vue est
index.xhtml
, et si je spécifie explicitementreturn "index";
ou<h:commandButton action="index.xhtml" ..>
qui, fondamentalement, est de retour au même point de vue, le bean sera recréé à nouveau .. pourquoi? - Peut un viewscoped bean survivre à une redirection?
- Et si il le peut, comment puis-je le préciser? Je ne peux pas imaginer faire quelque chose comme
return "?faces-redirect=true"
ou<h:commandButton action="?faces-redirect=true" ..>
, et oui, je voudrais sauter la définition de la navigation dansfaces-config.xml
à l'aide de la<redirect/>
.
Cette réponse pour la question "Comment et quand est une portée de vue de haricots détruit en JSF?" pourrait être pertinente.
OriginalL'auteur bertie | 2011-03-31
Vous devez vous connecter pour publier un commentaire.
Si vous spécifiez explicitement un résultat (lire: un point de vue), puis un nouveau point de vue qui va être créé. Vous devez retourner la valeur null ou vide à partir de la méthode de l'action (ou tout simplement laisser les
action
attribut de la commande du composant).Je dois avouer que je comprends votre confusion et que le terme "vue" peut être interprété différemment selon le contexte. Je pense que je vais revoir le libellé de l'article lié, tôt ou tard.
Pas. La seule session étendue des fèves et des objets dans le flash portée aussi (qui se termine immédiatement une fois la redirection a été fini, c'est peut-être ce qui vous fait nécessité de l'exigence fonctionnelle vous aviez à l'esprit quand vous posez la question).
OriginalL'auteur BalusC
L'état d'affichage peut survivre redirection si le javax.des visages.ViewState est fourni. La plus simple solution que j'ai trouvé, c'est la mise en œuvre d'une navigation handler.
Dans faces-config.xml:
La classe Java:
Cela a des conséquences: Chaque redirection n'est pas indépendant en demande plus. Il dépend de l'état d'affichage, qui ne peuvent pas nécessairement être restauré. Donc, avoir une stratégie de repli, s'il est expiré par exemple. redirection sur la vue expiré exception.
OriginalL'auteur Tires