jsf - componentes - ¿Para qué se usa FacesContext?
primefaces (4)
FacesContext contiene toda la información de estado por solicitud relacionada con el procesamiento de una única solicitud de JavaServer Faces y la representación de la respuesta correspondiente. Se pasa a cada fase del ciclo de vida de proceso de solicitud y puede modificarse potencialmente.
Una instancia de FacesContext se asocia con una solicitud particular al comienzo del proceso de solicitud, mediante una llamada al método getFacesContext () de la instancia de FacesContextFactory asociada con la aplicación web actual. La instancia permanece activa hasta que se invoca su método de liberación (), después de lo cual no se permiten más referencias a esta instancia. Mientras una instancia de FacesContext está activa, no se debe hacer referencia a ella desde ningún hilo que no sea el sobre el que se utiliza el contenedor de servlets que ejecuta esta aplicación web para el procesamiento de esta solicitud.
referencia:
http://docs.oracle.com/javaee/6/api/javax/faces/context/FacesContext.html
¿ FacesContext
qué se usa FacesContext
?
¿Y dónde exactamente se implementa?
Facescontext es el punto de anclaje para conectarse a los servicios específicos de marcos y contenedores. Por ejemplo, puede obtener los objetos de contexto y httprequest subyacentes para la solicitud de página que está accediendo a su bean de respaldo al pasar por Facescontext. Eso incluye el contexto de seguridad bajo el cual se ejecuta una solicitud de página web.
La filosofía general detrás de JSF es que los componentes proporcionados por el usuario deben ser lo suficientemente abstractos como para no depender de detalles sobre si se ejecutan en un entorno JSP tradicional o algo más exótico, por lo que si hay una referencia de Facescontext en el bean, es un signo potencial de mal diseño, especialmente porque se espera que los frijoles inyecten cosas en ellos, no salgan a buscar cosas.
Sin embargo, a veces, por una razón u otra, es conveniente acceder al bean de respaldo y obtener la información remota, por lo que está allí si lo necesita.
Referencia: ¿Cuál es el uso de Facescontext Context Object?
Cita del capítulo 6.1 de la especificación JSF 2.0 :
FacesContext
JSF define la clase base abstracta
javax.faces.context.FacesContext
para representar toda la información contextual asociada con el procesamiento de una solicitud entrante y la creación de la respuesta correspondiente.Una instancia de
FacesContext
es creada por la implementación JSF, antes de comenzar el ciclo de vida del proceso de solicitud, mediante una llamada al métodoFacesContextFactory
deFacesContextFactory
, como se describe en la Sección 6.6 "FacesContextFactory".Cuando se completa el ciclo de vida del proceso de solicitud, la implementación de JSF llamará al método de lanzamiento, que brinda a las implementaciones JSF la oportunidad de liberar los recursos adquiridos, así como agrupar y reciclar las instancias de FacesContext en lugar de crear nuevas para cada solicitud.
Se especifica en la clase javax.faces.context.FacesContext
y en Mojarra implementado en la clase com.sun.faces.context.FacesContextImpl
y en MyFaces implementado en la clase org.apache.myfaces.context.servlet.FacesContextImpl
.
Ver también:
Se crea una nueva instancia de FacesContext con cada nueva solicitud. La principal tarea de FacesContext es proporcionar toda la información relacionada con la solicitud particular a la que está asociada. Por ejemplo: para agregar mensajes después de cierta falla de validación o conversión, simplemente puede agregar el mensaje a FacesContext, que finalmente muestra el mensaje deseado en la pantalla. También puede echar un vistazo e incluso detener el ciclo de vida JSF en cualquier momento llamando
FacesContext.responseComplete();