了解带/不带重定向的 JSF 生命周期阶段
Understanding JSF Lifecycle phases with & without Redirection
假设有 2 个 JSF 页面和一个支持 bean
index.xhtml- 带有视图参数和表单
支持 bean- 操作方法,从 index.xhtml[导航到 result.xhtml 和 NO REDIRECTION
result.xhtml- 没有表格但输出一些文本
考虑一个简单的案例
向 index.xhtml-
发出 GET 请求
像这样的视图参数-
执行的阶段-
响应-
点击提交-
执行的阶段-
注意:这是一个 POSTBACK,生命周期阶段是为 POST 请求执行的index.xhtml
响应-
响应包含 result.xhtml 页面的内容,然后在浏览器中清楚地反映出来 window。在呈现时,生命周期也必须为 result.xhtml 视图执行。为什么我在控制台中看不到此视图的阶段?
我很清楚,通过重定向,在 POSTBACK 上,index.xhtml 的渲染响应阶段将被跳过,然后所有阶段result.xhtml 将被解雇。
您似乎期望生命周期是基于视图的。这确实会引起混乱。
事实上,生命周期是基于请求的,而不是基于视图的。那应该清除一切。如果您考虑一下,在同一个 HTTP 请求期间,真的没有必要重做收集、转换和验证请求参数以及更新模型值和调用操作的整个周期。
另请参阅:
- What is the difference between redirect and navigation/forward and when to use what?
假设有 2 个 JSF 页面和一个支持 bean
index.xhtml- 带有视图参数和表单
支持 bean- 操作方法,从 index.xhtml[导航到 result.xhtml 和 NO REDIRECTION
result.xhtml- 没有表格但输出一些文本
考虑一个简单的案例
向 index.xhtml-
发出 GET 请求像这样的视图参数-
执行的阶段-
响应-
点击提交-
执行的阶段-
注意:这是一个 POSTBACK,生命周期阶段是为 POST 请求执行的index.xhtml
响应-
响应包含 result.xhtml 页面的内容,然后在浏览器中清楚地反映出来 window。在呈现时,生命周期也必须为 result.xhtml 视图执行。为什么我在控制台中看不到此视图的阶段?
我很清楚,通过重定向,在 POSTBACK 上,index.xhtml 的渲染响应阶段将被跳过,然后所有阶段result.xhtml 将被解雇。
您似乎期望生命周期是基于视图的。这确实会引起混乱。
事实上,生命周期是基于请求的,而不是基于视图的。那应该清除一切。如果您考虑一下,在同一个 HTTP 请求期间,真的没有必要重做收集、转换和验证请求参数以及更新模型值和调用操作的整个周期。
另请参阅:
- What is the difference between redirect and navigation/forward and when to use what?