i was trying some jsf examples and i am getting this error "Cannot find FacesContext" and when im mapping my "faces-config.xml" and "web.xml" like this i can see the html and other code on the jsp page. i am using tomcat 5. web.xml and faces-config.xml is given below
Well, don't know what's the real problem, but I saw few problems here:
1. Your JSF Servlet mapping points to /faces/*, but none of your page files matches this pattern.
2. Unless you're using JSF 1.x, the file type to use for pages is .xhtml. You write on XHTML files, but the browser/internal requests are for ".jsf files".
I recommend you read some tutorials like www.coreservlets.com/JSF-Tutorial/jsf2/ (if you're using JSF 2.0).
Rafael Fontoura wrote:Well, don't know what's the real problem, but I saw few problems here:
Those were, in fact the problems. The J2EE server will only route URLs that match the JSF servlet's (FacesServlet) request URL pattern(s). Any other URLs will be on their own.
It's unfortunate that JSF started out using the ".jsp" file extension, because unlike "real" JSPs, JSF JSP file are not compiled into servlets and executed. They must be read as templates by the FacesServlet so that the FacesServlet can operate as an MVC master controller. The FacesServlet constructs a FacesContext to help it do that, but it then destroys that FacesContext once the output has been sent back to the user. A new FacesContext is created for each request, and therefore the FacesContext won't exist (and therefore cannot be found) on URLs that weren't routed to the FacesServlet.
An IDE is no substitute for an Intelligent Developer.