【发布时间】:2012-10-31 14:46:33
【问题描述】:
为什么在使用 Response.sendRedirect() 将页面重定向到另一个页面后立即调用 FacesContext.responseComplete() 后 IE (IE8) 仍在尝试呈现当前页面。其他浏览器(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 之后
【问题讨论】:
-
浏览器特定的问题通常是由客户端代码引起的(因此不是由 JSF 等服务器端代码引起的)。例如,您是否有一些 JavaScript 代码可以提交表单 onload?也许有一些不可预见的特定于浏览器的 JS 条件导致它在 IE 中被触发。
-
我没有实现任何验证规则
-
我有没有告诉任何关于验证的事情?请重新阅读评论并直接回答,而不是返回完全不相关的评论。
-
感谢 BalusC 的快速回复。我确实加载了一个javascript来重置每个页面的超时。我会调查的。
-
对不起,验证评论是在我看到你的答案之前。
标签: jsf