Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个按钮替换为另一个按钮_Java_Primefaces - Fatal编程技术网

Java 将一个按钮替换为另一个按钮

Java 将一个按钮替换为另一个按钮,java,primefaces,Java,Primefaces,编辑 我想把一个按钮换成另一个按钮 我有一个签出部分,它下载一个文件,然后在下载之后,必须用一个签入按钮来替换,这个按钮可以上传一个文件。上传后,“签入”按钮转换回“签出”按钮 警告:我认为问题可能与 我有两个问题: 1) 我必须在点击下载按钮后手动刷新浏览器,以便它转换为上传按钮 2) 我不知道如何调用将upload按钮转换回upload按钮的方法 XHTML代码是: <h:panelGrid id="panel"> <p:panel id="checkoutPanel"

编辑

我想把一个按钮换成另一个按钮

我有一个签出部分,它下载一个文件,然后在下载之后,必须用一个签入按钮来替换,这个按钮可以上传一个文件。上传后,“签入”按钮转换回“签出”按钮

警告:我认为问题可能与

我有两个问题:

1) 我必须在点击下载按钮后手动刷新浏览器,以便它转换为上传按钮

2) 我不知道如何调用将upload按钮转换回upload按钮的方法

XHTML代码是:

<h:panelGrid id="panel">

<p:panel id="checkoutPanel" rendered="#{myBean.checkout}" >

<p:commandButton value="Checkout" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop) update="panel" actionListener="#{myBean.checkinTurn}">
  <p:fileDownload value="#{fileDownloadController.downloadFile(myBean.File)}" actionListener="#{editUDBean.checkinTurn}"/>  
   </p:commandButton> 
  </p:panel>

<p:remoteCommand name="stop" update="checkinPanel">   
</p:remoteCommand>

 <p:panel id="checkinPanel" rendered="#{editUDBean.checkin}">
     <h:outputLabel value="Checkin"/>
     <h:outputLabel value="#{editUDBean.checkin}"/>

   <p:fileUpload label="Checkin"  fileUploadListener="#{fileUploadController.handleFileUpload}" mode="advanced" allowTypes="/(\.|\/)(xml|XML)$/" auto="true"  />
     </p:panel>
 </h:panelGrid>


 @ManagedBean(name="fileDownloadController", eager = true)
 @SessionScoped
 public class FileDownloadController implements Serializable{

    private boolean checkout = false; 

    public boolean isCheckout() {
    return checkout;
   }

   public void setCheckout(boolean checkout) {
    this.checkout = checkout;
   }

   public StreamedContent downloadFile(File file) {

    checkout = true;
    ...
  }

}


你能试试更新checkoutpanel吗?恐怕你做不到。文件下载必须是非ajax,更新必须是ajax。请看,我已根据链接中给出的建议进行了一些更改,我只需单击一次,但我必须手动更新浏览器,使其正常工作