我试图使用<p:ajax>
调用我的支持bean方法,但它不起作用。我的<p:ajax>
包含在<h:commandButton>
内,如下所示:
<h:commandButton value="#{msg['supprimer.image']}"
styleClass="btn btn-sm btn-danger" update=":uploader"
process="@this">
<p:ajax event="click" update="imagesList" process="@this"
listener="#{creationBesoinBean.supprimerImage(uploadedImage)}"/>
</h:commandButton>
但是不会调用supprimerImage方法。有人能帮帮我吗?
答案 0 :(得分:3)
方法监听器应该在支持bean
中具有此签名public void supprimerImage ()
<p:ajax event="click" update="imagesList" process="@this"
listener="#{creationBesoinBean.supprimerImage}"></p:ajax>
答案 1 :(得分:0)
p:ajax
的点击事件名称为onclick
而不是click
。
在Primefaces版本的PrimeFaces User's Guide中搜索“Ajax行为事件”,您可以获得有关p:ajax
的更多信息。
答案 2 :(得分:0)
PrimeFaces p:ajax已经为它附加的元素使用了默认事件,在commandButton的情况下是click方法。
以下代码调用就好了:
<h:commandButton value="Do Stuff" styleClass="btn btn-sm btn-danger"
update=":uploader" process="@this">
<p:ajax process="@this"
listener="#{creationBesoinBean.supprimerImage}">
<f:setPropertyActionListener value="referenceUploadedImageHere"
target="#{creationBesoinBean.image}" />
</p:ajax>
</h:commandButton>
p:ajax的Listener-Method必须如下所示:
public void supprimerImage(AjaxBehaviorEvent event) {
如果您使用按钮的操作标记,则需要如下所示:
public void supprimerImage()
ActionListener-Methods例如在p:按钮中,如下所示:
public void supprimerImage(ActionEvent event)
至于如何使用Uploaded Image,要么将它保存在bean中并在p:ajax的Listener-Method中使用它,要么使用f:setPropertyListener设置它。此外,我同意Tiny的建议,并使用一个p:commandButton,它内置了actionListener和action,因此你不会使用p:ajax标签混乱你的代码。