这个问题可以在这里得到解答吗?我知道对于a4j:commandButton存在与ajax的关系。但是什么时候可以使用h:commandButton并且可以使用a4j:commandButton。
这个问题的核心可以参考h:commandLink和a4j:commandLink。
非常感谢! MAIK
答案 0 :(得分:1)
a4j:commandButton
与标准h:commandButton
类似,但会生成带有进一步部分页面更新的Ajax请求。 'reRender'属性指向应在组件树中重新呈现并在Ajax响应完成后在浏览器DOM中更新的组件
在RichFaces 4中
a4j:commandButton
将标准h:commandButton
与a4j:ajax结合起来。
比较a4j:commanButton和h:commandButton的VDL文档时,您可以在a4j:commandButton
中看到一些与ajax相关的属性:render
,limitRender
,{{1 },onbeforedomupdate
,onbegin
(这些属性不属于oncomplete
)。这意味着两者都可用于操作和页面导航,但h:commandButton
具有ajax特殊选项的附加属性(特别是在需要部分页面重新渲染的情况下)。
注意与Spindizzy的答案有关:
页面导航在RichFaces 3.3.x和RichFaces 4.x中与a4j:commandButton
一起正常工作。如果有人使用a4j:commandButton
(在JSF 1.2和非常旧的RichFaces中)导航页面导航时出现问题,则可以通过在a4j:commandButton
中添加<redirect />
来解决此问题( faces-config.xml < /强>)
答案 1 :(得分:0)
a4j:commandButton自RichFaces 3.0.0版本开始存在,很久以前标准实现支持Ajax。
我总是坚持标准,所以使用带有Ajax支持的h:commandButton。如果你不能做你想做的标准,寻找替代品。 a4j按钮还有一些功能。
a4j的一个用例:commandButton会在bean的状态发生变化而没有完全重新加载页面时呈现一个面板。
在较旧版本的RichFaces中,有一些issues与页面导航相关。