我有一个表单,其中包含几个h:commandButtons-所有按钮都附有f:ajax标签。当我触发其中一个命令按钮时,我在日志中看到所有实际上都被触发了-所以所有操作都被调用了?
这是h:commandButton + f:ajax组合的正常行为吗?
我使用commandButton的action属性而不是f:fajax上的listener。
希望有人能向我解释一下。
提前致谢。
/ Søren
编辑:
简化的代码:
<h:form>
<ui:repeat ...>
<h:inputText value="#{order.quantity}"/>
</ui:repeat>
<h:commandButton type="button" action="#{facade.updateOrderItems()}" value="Update">
<f:ajax execute="@form" render=":orderList" onevent="onAjaxEvent"></f:ajax>
</h:commandButton>
<h:commandButton type="button" action="#{facade.deleteSelectedOrderItems(order)}" value="Delete">
<f:ajax execute="@form" render=":orderList" onevent="onAjaxEvent"></f:ajax>
</h:commandButton>
<h:commandButton type="button" action="#{facade.addOrdersItemsToWishList(order)}" value="Add to wish list"> <f:ajax execute="@form" render=":orderList" onevent="onAjaxEvent"></f:ajax>
</h:commandButton>
</h:form>
当我点击更新按钮时,似乎也会调用删除和添加到愿望清单按钮...?
<h:commandButton>
中使用immediate=true
,像这样:<h:commandButton immediate=true action=..../>
- Syed Anas