Dans quel cas FacesContext est-il utilisé?

dans quel cas FacesContext est-il utilisé?

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

26
demandé sur BalusC 2011-05-03 09:19:22

4 réponses

citation du chapitre 6.1 de spécification JSF 2.0 :

FacesContext

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

Un FacesContext l'instance est créée par le JSF la mise en œuvre, avant début de la cycle de traitement des demandes, par un appel à la méthode getFacesContext de FacesContextFactory , comme décrit dans Section 6.6 "FacesContextFactory".

lorsque le cycle de vie du traitement de la demande a été achevé, le JSF la mise en œuvre appellera la libération méthode, qui donne JSF les implémentations de l'occasion pour libérer toutes les ressources acquises, comme ainsi que de mettre en commun et de recycler Les instances facescontexte plutôt que création de nouveaux pour chacun demande.

il est spécifié dans la classe javax.faces.context.FacesContext et dans Mojarra mis en œuvre dans la classe com.sun.faces.context.FacesContextImpl et dans MyFaces mis en œuvre dans la classe org.apache.myfaces.context.servlet.FacesContextImpl .

voir aussi:

29
répondu Matt Handy 2017-05-23 12:32:20

FacesContext contient toutes les informations par requête de l'état relatives au traitement d'une seule requête JavaServer Faces, et au rendu de la réponse correspondante. Il est transmis à chaque phase du cycle de traitement de la demande et peut être modifié par celle-ci.

une instance FacesContext est associée à une requête particulière au début du traitement de la requête, par un appel à la méthode getFacesContext() de la Instance FacesContextFactory associée à l'application web actuelle. 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. Alors qu'une instance FacesContext est active, elle ne doit pas être référencée à partir d'un autre thread que celui sur lequel le conteneur servlet exécutant cette application web utilise pour le traitement de cette requête.

référence:

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

4
répondu Mahdi Esmaeili 2016-03-01 10:58:21

le texte Facescontexte est le point d'ancrage pour se connecter au cadre-et services spécifiques aux conteneurs. Par exemple, vous pouvez obtenir le les objets httprequest et context sous-jacents pour la requête de page qui est accédez à votre support en passant par le texte Facescon. Que inclut le contexte de sécurité dans lequel une demande de page web est exécutée.

la philosophie générale derrière JSF est que les composants fournis par l'utilisateur devrait être abstrait assez de ne pas dépendre des détails tels que ils fonctionnent dans un environnement JSP traditionnel ou quelque chose de plus exotique, donc s'il y a une référence Facescontexte dans le haricot, c'est signe potentiel de mauvaise conception, d'autant plus que les haricots sont censés faire injecter des choses, pas sortir chercher des trucs.

Cependant, parfois, pour une raison ou une autre, il est commode d'atteindre de la fève de soutien et d'obtenir l'information périphérique, Il est là, si vous en avez besoin.

la Référence: qu'est-Ce que l'utilisation de Facescontext Context Objet

2
répondu abbas 2013-07-12 08:02:39

une nouvelle instance de FacesContext est créée à chaque nouvelle requête. La tâche principale de FacesContext est de fournir toutes les informations concernant la demande à laquelle elle est associée. Par exemple: pour ajouter des messages après une validation ou un échec de conversion, vous pouvez simplement ajouter le message au texte Facescon qui affiche finalement le message désiré sur l'écran. Vous pouvez également jeter un coup d'oeil et même arrêter le cycle de vie de JSF à tout moment en appelant

    FacesContext.responseComplete();
2
répondu Aalekh 2014-09-16 17:13:13