76 votes

Différence entre les champs View et Request dans les managed beans

Que signifie la portée de la vue ? Quelqu'un peut-il m'expliquer ce qu'il en est, afin que je puisse comprendre en quoi il diffère de la portée de la demande ?

159voto

BalusC Points 498232

A @ViewScoped Le haricot vit exactement aussi longtemps qu'une vue JSF. Il commence généralement par une nouvelle requête GET, ou par une action de navigation, et vit ensuite aussi longtemps que l'utilisateur final soumet un formulaire POST dans la vue à une méthode d'action qui retourne null o void (et renvoie ainsi à l même vue). Une fois que vous avez rafraîchi la page, ou renvoyé un non null (même une chaîne vide !), alors la portée de la vue se terminera.

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

A @ViewScoped bean est donc particulièrement utile dans les vues riches compatibles avec Ajax qui doivent se souvenir de l'état de la vue (modifié) à travers les requêtes Ajax. A @RequestScoped serait recréé à chaque requête Ajax et ne pourrait donc pas se souvenir de tous les changements d'état de la vue. Notez qu'une @ViewScoped ne partage pas de données entre différents onglets/fenêtres du navigateur dans la même session, comme le ferait un fichier de type @SessionScoped haricot. Chaque vue a son propre et unique @ViewScoped haricot.

Voir aussi :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X