5

我想我知道其中的区别,但现在我发现自己很困惑。:P

它们似乎都在做同样的事情,除了partialSubmit用于提交按钮以使用 AJAX 提交表单并autoSubmit用于可编辑组件,它只提交自己的内容。我这样说对吗?

4

2 回答 2

9

对于 ADF,接受的答案并非 100% 正确。该partialTriggers属性涉及生命周期。

以声明方式启用部分页面呈现

autoSubmit输入组件的属性和partialSubmit 命令组件的属性不是一回事。当 partialSubmit设置为 true 时,只有具有partialTriggers属性值的组件才会在整个生命周期中得到处理。输入和选择组件使用该autoSubmit属性来告诉框架在值更改时自动执行表单提交。但是,当提交表单并将 autoSubmit属性设置为 true 时,将调用 valueChangeEvent 事件,并且生命周期仅在标记为该事件的根组件的组件及其子组件上运行。有关详细信息,请参阅第 4.4 节,“使用优化的生命周期”。

于 2011-09-08T14:31:36.890 回答
3

它们都是从自定义 JSF 组件的自定义属性发生的启用 AJAX 的调用。特定于组件的autoSubmit本质上异步回发内容,用于使服务器端管理的 bean 值与客户端组件内的内容保持同步。

ApartialSubmit是另一个异步 AJAX 调用,它将用于在某种组件事件上立即回发组件值,例如失去对 ICEFaces inputText 组件的关注。

值得注意的是,整个 ViewState 都会在每种类型的异步提交上回发,因此如果在提交之前页面上其他组件的值发生了变化,那么绑定的服务器端托管 bean 属性的值也会被刷新,即使客户端组件可能不会被刷新以反映可能发生的任何服务器端数据更改。

实际上,整个 JSF 服务器端生命周期发生在每次回发时,请阅读以下有关实现调试 PhaseListener 的文章,该文章可让您查看每次异步提交操作发生后发生的阶段。

http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html

于 2011-09-02T11:33:59.797 回答