Différence entre la portée de la vue et de la demande dans les haricots gérés

que signifie le champ de vision? Quelqu'un peut-il expliquer à ce sujet, afin que je puisse comprendre en quoi elle diffère de la demande portée?

59
demandé sur BalusC 2011-05-17 07:41:49
la source

1 ответов

Un @ViewScoped bean vie exactement aussi longtemps que une vue JSF. Il commence habituellement avec une nouvelle requête GET, ou avec une action de navigation, et vivra aussi longtemps que l'utilisateur final soumet n'importe quelle forme de POST dans la vue à une méthode d'action qui retourne null ou void (et navigue ainsi retour à la même vue). Une fois que vous rafraîchissez la page, ou retournez une chaîne non- null (même une chaîne vide!) résultat de la navigation, puis le champ de vision sera fin.

A @RequestScoped bean vit exactement aussi longtemps qu'une requête HTTP. Il sera ainsi garbaged à la fin de chaque demande et recréé sur chaque nouvelle demande, perdant ainsi toutes les propriétés modifiées.

a @ViewScoped bean est donc particulièrement utile dans les vues riches activées par Ajax qui doivent se souvenir de l'état de vue (modifié) à travers les requêtes Ajax. Un @RequestScoped serait recréé sur chaque demande Ajax et donc ne pas se souvenir de tout changé l'état d'affichage. Notez qu'un @ViewScoped ne partage aucune donnée entre différents onglets/fenêtres de navigateur dans la même session comme un @SessionScoped . Chaque vue a son propre unique @ViewScoped bean.

voir aussi:

125
répondu BalusC 2017-05-23 15:10:30
la source

Autres questions sur jsf jsf-2