为什么IE(IE8)仍在尝试在使用Response.sendRedirect()将页面重定向到另一个页面后立即调用FacesContext.responseComplete()之后呈现当前页面。其他浏览器(Firefox,Chrome,Opera ...)只是跳转到另一个页面而不尝试渲染当前页面。我正在使用JSF 1.2和Richfaces 3.3 final。下面列出了JSF生命周期,用于触发命令按钮。请注意IE上的验证阶段。验证是根本原因吗?
其他浏览器
在RESTORE_VIEW 1之前
RESTORE_VIEW 1之后
在APPLY_REQUEST_VALUES 2之前
APPLY_REQUEST_VALUES 2
之后在PROCESS_VALIDATIONS 3之前
在PROCESS_VALIDATIONS 3之后
在UPDATE_MODEL_VALUES 4之前
UPDATE_MODEL_VALUES 4
之后在INVOKE_APPLICATION 5之前
在INVOKE_APPLICATION 5之后
在RENDER_RESPONSE 6之前
在RENDER_RESPONSE 6之后
在RESTORE_VIEW 1之前
RESTORE_VIEW 1之后
在RENDER_RESPONSE 6之前
在RENDER_RESPONSE 6之后
IE
在RESTORE_VIEW 1之前
RESTORE_VIEW 1之后
在APPLY_REQUEST_VALUES 2之前
APPLY_REQUEST_VALUES 2
之后在PROCESS_VALIDATIONS 3之前
在PROCESS_VALIDATIONS 3之后
在UPDATE_MODEL_VALUES 4之前
UPDATE_MODEL_VALUES 4
之后在INVOKE_APPLICATION 5之前
在INVOKE_APPLICATION 5之后
在RENDER_RESPONSE 6之前
在RENDER_RESPONSE 6之后
在RESTORE_VIEW 1之前
RESTORE_VIEW 1之后
在APPLY_REQUEST_VALUES 2之前
APPLY_REQUEST_VALUES 2
之后在PROCESS_VALIDATIONS 3之前
...错误(与问题无关)
在PROCESS_VALIDATIONS 3之后
在RESTORE_VIEW 1之前
RESTORE_VIEW 1之后
在RENDER_RESPONSE 6之前
在RENDER_RESPONSE 6之后
答案 0 :(得分:0)
此问题与JSF无关。特定于浏览器的问题通常由客户端代码(如HTML / CSS / JS)引起,而不是由服务器端代码(如JSF)引起。此特定问题可以识别为JavaScript问题。您需要检查是否没有任何JavaScript代码在onload / DOM-ready期间执行某些任务,例如自动提交表单。阶段监听器跟踪表明已执行POST请求(阶段#2,直到#5通常仅在回发期间出现)。
很可能是某些无法预见的浏览器特定的JS条件导致在MSIE中触发POST请求。