web-dev-qa-db-fra.com

À quoi sert FacesContext?

À quoi sert FacesContext?

Et où est-il mis en œuvre exactement?

31
meenus

Citation du chapitre 6.1 de spécification JSF 2. :

FacesContext

JSF définit le javax.faces.context.FacesContext classe de base abstraite pour représenter toutes les informations contextuelles associées au traitement d'une demande entrante et à la création de la réponse correspondante.

Une instance FacesContext est créée par l'implémentation JSF, avant de commencer le cycle de vie du traitement des demandes, par un appel à la méthode getFacesContext de FacesContextFactory, comme décrit dans la section 6.6 "FacesContextFactory ".

Une fois le cycle de vie du traitement des demandes terminé, l'implémentation JSF appellera la méthode de libération, qui donne aux implémentations JSF la possibilité de libérer toutes les ressources acquises, ainsi que de regrouper et recycler les instances de FacesContext plutôt que d'en créer de nouvelles pour chaque demande.

Il est spécifié dans la classe javax.faces.context.FacesContext et dans Mojarra implémenté dans la classe com.Sun.faces.context.FacesContextImpl et dans MyFaces implémentés dans la classe org.Apache.myfaces.context.servlet.FacesContextImpl .

Voir également:

31
Matt Handy

FacesContext contient toutes les informations d'état par demande liées au traitement d'une seule demande JavaServer Faces et au rendu de la réponse correspondante. Il est transmis à, et potentiellement modifié par, chaque phase du cycle de vie du traitement des demandes.

Une instance FacesContext est associée à une demande particulière au début du traitement de la demande, par un appel à la méthode getFacesContext () de l'instance FacesContextFactory associée à l'application Web en cours. L'instance reste active jusqu'à ce que sa méthode release () soit appelée, après quoi aucune autre référence à cette instance n'est autorisée. Lorsqu'une instance de FacesContext est active, elle ne doit pas être référencée à partir d'un thread autre que celui sur lequel le conteneur de servlet exécutant cette application Web utilise pour le traitement de cette demande.

référence:

http://docs.Oracle.com/javaee/6/api/javax/faces/context/FacesContext.html

5
Mahdi Esmaeili

Une nouvelle instance de FacesContext est créée à chaque nouvelle demande. La tâche principale de FacesContext est de fournir toutes les informations concernant la demande particulière à laquelle il est associé. Par exemple: pour ajouter des messages après un certain échec de validation ou de conversion, vous pouvez simplement ajouter le message au FacesContext qui affiche finalement le message souhaité à l'écran. Vous pouvez également jeter un œil et même arrêter le cycle de vie JSF à tout moment en appelant

    FacesContext.responseComplete();
4
Aalekh

Facescontext est le point d'ancrage pour se connecter à des services spécifiques au framework et au conteneur. Par exemple, vous pouvez obtenir les objets httprequest et contextuels sous-jacents pour la demande de page qui accède à votre bean de sauvegarde en parcourant le Facescontext. Cela inclut le contexte de sécurité sous lequel une demande de page Web s'exécute.

La philosophie générale derrière JSF est que les composants fournis par l'utilisateur doivent être suffisamment abstraits pour ne pas dépendre de détails tels qu'ils s'exécutent dans un environnement JSP traditionnel ou quelque chose de plus exotique, donc s'il y a une référence Facescontext dans le bean, c'est un signe potentiel de mauvaise conception, d'autant plus que les haricots devraient être injectés, et non pas chercher des trucs.

Cependant, parfois pour une raison ou une autre, il est pratique de tendre la main hors du bean de sauvegarde et d'obtenir les informations périphériques, donc elles sont là si vous en avez besoin.

Référence: à quoi sert l'objet de contexte Facescontext

2
abbas