Details
Description
When navigating in an ICEfaces application that uses Facelets, the view id is altered during the render phase. This is different behaviour than when using JSPs. Below is the output from a PhaseListener that shows the view id during page navigation from one page to another. The Facelets version shows the view id being altered (the extension is changed from .iface to .jspx) where the JSP version does not.
JSP (i.e. without Facelets)
Page 1
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
Page 2
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 com.icesoft.faces.application.D2DViewHandler$1@2ac22a /headAndNav01.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 com.icesoft.faces.application.D2DViewHandler$1@2ac22a /headAndNav01.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 com.icesoft.faces.application.D2DViewHandler$1@2ac22a /headAndNav01.iface
Facelets
Page 1
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
Page 2
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@80f3a4 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@80f3a4 com.icesoft.faces.application.D2DViewHandler$1@b532e /headAndNav01.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@80f3a4 com.icesoft.faces.application.D2DViewHandler$1@b532e /headAndNav01.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@80f3a4 com.icesoft.faces.application.D2DViewHandler$1@b532e /headAndNav01.jspx
JSP (i.e. without Facelets)
Page 1
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
Page 2
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
after INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@e03bd6 com.icesoft.faces.application.D2DViewHandler$1@18f37c /headAndNav.iface
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 com.icesoft.faces.application.D2DViewHandler$1@2ac22a /headAndNav01.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 com.icesoft.faces.application.D2DViewHandler$1@2ac22a /headAndNav01.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@7b8cf0 com.icesoft.faces.application.D2DViewHandler$1@2ac22a /headAndNav01.iface
Facelets
Page 1
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
Page 2
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after APPLY_REQUEST_VALUES 2 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after PROCESS_VALIDATIONS 3 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after UPDATE_MODEL_VALUES 4 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
after INVOKE_APPLICATION 5 com.icesoft.faces.context.BridgeFacesContext@8b4ce9 com.icesoft.faces.application.D2DViewHandler$1@91762 /headAndNav.jspx
before RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@80f3a4 null
after RESTORE_VIEW 1 com.icesoft.faces.context.BridgeFacesContext@80f3a4 com.icesoft.faces.application.D2DViewHandler$1@b532e /headAndNav01.iface
before RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@80f3a4 com.icesoft.faces.application.D2DViewHandler$1@b532e /headAndNav01.iface
after RENDER_RESPONSE 6 com.icesoft.faces.context.BridgeFacesContext@80f3a4 com.icesoft.faces.application.D2DViewHandler$1@b532e /headAndNav01.jspx
I'm attaching a .zip file that contains a pre-built war and source code. It uses Facelets and has a PhaseListener and is built to run on Tomcat 6.