Thank u very much adrian your reply was very usefull but i have one more question how can i reach view to be displayed next in filter. thanks for your help..
Adrian Mitev <[EMAIL PROTECTED]> wrote: This is from http://jsffaq.com. Currentyle the site is down. I`ve downloaded this article before. --------------- Outside the Faces realm, for example in a filter or a servlet, when the FacesContent.getCurrentInstance() returns null, you can use FacesContextFactory to reach the FacesContext. This is a method that allows you to do so: // You need an inner class to be able to call FacesContext.setCurrentInstance // since it's a protected method private abstract static class InnerFacesContext extends FacesContext { protected static void setFacesContextAsCurrentInstance(FacesContext facesContext) { FacesContext.setCurrentInstance(facesContext); } } private FacesContext getFacesContext(ServletRequest request, ServletResponse response) { // Try to get it first FacesContext facesContext = FacesContext.getCurrentInstance(); if (facesContext != null) return facesContext; FacesContextFactory contextFactory = (FacesContextFactory)FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY); LifecycleFactory lifecycleFactory = (LifecycleFactory)FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY); Lifecycle lifecycle = lifecycleFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE); // Either set a private member servletContext = filterConfig.getServletContext(); // in you filter init() method or set it here like this: // ServletContext servletContext = ((HttpServletRequest)request).getSession().getServletContext(); // Note that the above line would fail if you are using any other protocol than http // Doesn't set this instance as the current instance of FacesContext.getCurrentInstance facesContext = contextFactory.getFacesContext(servletContext, request, response, lifecycle); // Set using our inner class InnerFacesContext.setFacesContextAsCurrentInstance(facesContext); // set a new viewRoot, otherwise context.getViewRoot returns null UIViewRoot view = facesContext.getApplication().getViewHandler().createView(facesContext, "yourOwnID"); facesContext.setViewRoot(view); return facesContext; } -- Seeing is believing
