Jsf 删除旋转木马中的图片+;更新

Jsf 删除旋转木马中的图片+;更新,jsf,primefaces,xhtml,Jsf,Primefaces,Xhtml,我有一个旋转木马,可以更新图片(存储在db中)并以更大的尺寸查看它们。那很好。但现在,我想删除它们。这几乎奏效了。几乎意味着,图片已被删除,但转盘未正确刷新。这是我的密码: <p:tab title="#{vms_uimsgs['vehicle.tab.images']}"> <h:form id="pictures" enctype="multipart/form-data"> <p:fileUpload fileUploadLis

我有一个旋转木马,可以更新图片(存储在db中)并以更大的尺寸查看它们。那很好。但现在,我想删除它们。这几乎奏效了。几乎意味着,图片已被删除,但转盘未正确刷新。这是我的密码:

    <p:tab title="#{vms_uimsgs['vehicle.tab.images']}">
     <h:form id="pictures" enctype="multipart/form-data"> 
      <p:fileUpload fileUploadListener="#{vmsVehicleActionBean.handleFileUpload}" mode="advanced" update="vehiclePictureCarousel" sizeLimit="10000000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
       <p:carousel id="vehiclePictureCarousel" var="imageId" value="#{vmsVehicleActionBean.imageIds}" itemStyleClass="vehiclePictureItem" effect="fade">
        <f:facet name="header" value="#{vms_uimsgs['vehicle.tab.images']}"/>
        <p:panelGrid columns="1" style="width:100%" cellpadding="5">
         <p:graphicImage value="#{graphicImageStore.streamedImageById}" rendered="#{graphicImageStore.hasImage(imageId)}">
          <f:param name="id" id="id" value="#{imageId}" />
         </p:graphicImage>
         <p:commandLink id="deleteImage" update="vehiclePictureCarousel" oncomplete="#{vmsVehicleActionBean.deleteImage()}" title="Delete Picture">
          <h:outputText styleClass="ui-icon ui-icon-close" style="margin:0 auto;" />
          <f:setPropertyActionListener value="#{imageId}" target="#{vmsVehicleActionBean.selectedImageId}" />
         </p:commandLink>                       
        </p:panelGrid>
       </p:carousel>
      </h:form>
     </p:tab>

或者问另一个问题,为什么当我用文件上传器添加图片时,我的旋转木马会正确刷新,而当我在旋转木马中删除带有commandlink的图片时,我的旋转木马不会正确刷新


当然,当重新加载整个页面时,一切都是正确的。但是我不想这样。

问题来自
oncomplete=“#{vmsvicleActionBean.deleteImage()}”
oncomplete
是在ajax完成时调用javascript方法的属性,因此您应该使用: facelet:

豆子:


非常感谢。这就是解决办法。
 actionListener="#{vmsVehicleActionBean.deleteImage(imageId)}"
public void deleteImage(String imageId){
//delete here
}