Description
There is a difference in behavior between JSF 2.2 and JSF 2.3 when using facelet prefixes.
I have a sample app that demonstrate this behavior difference. In the app we just define a random servlet and map it to the same prefixes we would normally map to the FacesServlet. We don't map /faces/* to the testServlet but it is automatically added to the FacesServlet, so if you drove a request to something other than .jsf (testServlet) or .faces (testServlet) the FacesServlet would be invoked for all of the prefix mappings of /faces/. So that would mean you should see TEST SERVLET printed for the suffix mapping (.jsf and .faces) and then the page1 should be rendered for /faces/*.
When you drive a request to: http://localhost:8080/JSF20FacesConfigAnotherServlet/faces/page1.jsf
On JSF 2.2: You should see an output of "TEST SERVLET". So it ensures that .jsf mapping is invoking the testServlet.
On JSF 2.3: You get a 404, page1.jsf not found. I think that in the case of JSF 2.3, it is invoking the FacesServlet but can't find the .jsf file because it doesn't actually exist.
Attachments
Attachments
Issue Links
- is duplicated by
-
MYFACES-4140 NullPointerException instead of InvalidViewIdException
- Resolved