IE忽略了FacesContext.responseComplete()

时间:2012-10-31 14:46:33

标签: jsf

为什么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之后

1 个答案:

答案 0 :(得分:0)

此问题与JSF无关。特定于浏览器的问题通常由客户端代码(如HTML / CSS / JS)引起,而不是由服务器端代码(如JSF)引起。此特定问题可以识别为JavaScript问题。您需要检查是否没有任何JavaScript代码在onload / DOM-ready期间执行某些任务,例如自动提交表单。阶段监听器跟踪表明已执行POST请求(阶段#2,直到#5通常仅在回发期间出现)。

很可能是某些无法预见的浏览器特定的JS条件导致在MSIE中触发POST请求。