2013-01-18 14 views
10

All'interno di unFacesContext # getCurrentInstance() restituisce il valore null in Filter # doFilter()

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) 

ho voluto ottenere la sessione utilizzando

FacesContext.getCurrentInstance().getExternalContext().getSession(false); 

Ma ho capito che FacesContext.getCurrentInstance() rendimenti null. So che posso ottenere la sessione usando ((HttpServletRequest) req).getSession(false), ma la mia domanda concreta è: perché è il contesto facce null nel metodo doFilter()?

Sto usando MyFaces 1.1.

risposta

12

FacesContext come oggetto è legato direttamente al trattamento ciclo di vita richiesta JSF e come risultato è disponibile soltanto durante uno standard JSF processo di richiesta-risposta (user-driven). L'oggetto stesso è memorizzato in un thread che viene eseguito durante l'elaborazione di una richiesta JSF, di fronte a un ManagedBean.

Ma. BalusC ha delineato alcuni passaggi per mettere le mani sull'oggetto al di fuori del ciclo di vita dell'elaborazione here. :)

+0

grazie .. penso di avere l'idea :) –

Problemi correlati