0

在恢复/创建视图阶段(“2.2 标准请求处理生命周期阶段”部分)的 JSF 2.0 规范中,它说:

如果请求是回发,则在当前 FacesContext 上调用 setProcessingEvents(false)。然后调用 ViewHandler.restoreView(),传递当前请求的 FacesContext 实例和视图标识符,并为恢复的视图返回一个 UIViewRoot。如果 ViewHandler.restoreView() 的返回为 null,则抛出带有相应错误消息的 ViewExpiredException。...

当谈到 ViewHandler.restoreView() 时,这里指的是哪个状态?这里是服务器组件状态还是客户端组件状态?

更一般地说,如何区分客户端和服务器状态?如果有任何类型的交互,JSF 2.0 如何设法使两者保持同步?

维基百科承认几种类型的状态保存,包括客户端和服务器状态保存和恢复,它没有详细说明它们。

4

1 回答 1

1

当谈到 ViewHandler.restoreView() 时,这里指的是哪个状态?这里是服务器组件状态还是客户端组件状态?

它是 JSF 组件树,所以我认为无论您在脑海中定义的“服务器组件状态”术语在这里最适用,因为您的“客户端组件状态”术语很可能是指 HTML DOM 树(由 JSF在渲染响应阶段生成并从服务器发送到客户端)。


更一般地说,如何区分客户端和服务器状态?如果有任何类型的交互,JSF 2.0 如何设法使两者保持同步?

是的,HTTP 请求(基本上没有其他方法可以让 HTTP 客户端与 HTTP 服务器交互......)。特别注意javax.faces.ViewState请求参数。

于 2012-07-30T14:37:06.690 回答