我想我知道不同之处,但现在我发现自己很困惑。 :P
它们似乎都做同样的事情,除了在提交按钮上使用partialSubmit
来使用AJAX提交表单,autoSubmit
用于可编辑组件,它只提交自己的内容。我说得对吗?
答案 0 :(得分:9)
对于ADF,接受的答案并非100%正确。 partialTriggers
属性涉及生命周期。
来自Enabling Partial Page Rendering Declaratively
输入组件的
autoSubmit
属性和partialSubmit
命令组件上的属性不是同一个东西。什么时候partialSubmit
设置为true,然后仅设置为具有的组件 他们的partialTriggers
属性的值将通过处理 生命周期。输入和选择使用autoSubmit
属性 告诉框架自动执行表单提交的组件 每当价值变化时。但是,当提交表格时autoSubmit
属性设置为true,valueChangeEvent事件为 调用,生命周期仅在标记为root的组件上运行 该活动的组成部分及其子女。欲获得更多信息, 请参见第4.4节“Using the Optimized Lifecycle”。
答案 1 :(得分:3)
它们都是从自定义JSF组件的自定义属性发生的AJAX启用调用。 autoSubmit
基本上异步回发特定于组件的内容,用于使服务器端托管bean值与客户端组件内的内容保持同步。
partialSubmit
是另一个异步AJAX调用,用于在某种组件事件上立即回发组件值,例如失去对ICEFaces inputText组件的关注。
有趣的是,整个ViewState会在每种类型的异步提交上回发,因此如果在提交之前页面上的其他组件的值发生了更改,则绑定的服务器端托管bean属性将具有其值即使客户端组件可能无法刷新以反映可能已发生的任何服务器端数据更改,也会刷新。
实际上,每个回发都会发生整个JSF服务器端生命周期,请阅读以下有关实现调试PhaseListener的文章,该文章允许您查看每次异步提交操作发生后正在发生的阶段。