我想我知道其中的区别,但现在我发现自己很困惑。: P
它们似乎都在做同样的事情,除了partialSubmit
在提交按钮上使用AJAX提交表单,autoSubmit
在可编辑组件上使用,它只提交自己的内容。我这么说对吗?
对于ADF,公认的答案并非100%正确。partialTriggers
属性涉及生命周期
选自声明式地启用部分页面呈现
输入组件和
partialSubmit
上的autoSubmit
属性属性是不一样的。当如果partialSubmit
被设置为true,那么只有具有它们的partialTriggers
属性值将通过的生命周期。输入和选择使用autoSubmit
属性组件告诉框架自动执行表单提交当值改变时。但是,当提交表单时如果autoSubmit
属性设置为true,则valueChangeEvent事件为调用时,生命周期仅在标记为根的组件上运行该事件的组件及其子组件。欲了解更多信息,请参见第4.4节,"使用优化的生命周期"。
它们都是从自定义JSF组件的自定义属性发生的AJAX启用调用。autoSubmit
本质上是异步回发特定于组件的内容,以保持服务器端托管bean值与客户端组件内的内容保持一致。
partialSubmit
是另一个异步AJAX调用,它将用于在某些组件事件上立即回发组件值,例如失去对ICEFaces inputText组件的关注。
值得注意的是,整个ViewState在每种类型的异步提交上都被发回,所以如果在提交之前页面上其他组件的值发生了变化,那么绑定的服务器端托管bean属性也会刷新它们的值,即使客户端组件可能不会刷新以反映任何可能发生的服务器端数据更改。
事实上,整个JSF服务器端生命周期发生在每次回发上,请阅读下面关于实现调试PhaseListener的文章,该文章允许您查看在每个异步提交操作发生后发生的phase。
http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html