Java 将一个按钮替换为另一个按钮
编辑 我想把一个按钮换成另一个按钮 我有一个签出部分,它下载一个文件,然后在下载之后,必须用一个签入按钮来替换,这个按钮可以上传一个文件。上传后,“签入”按钮转换回“签出”按钮 警告:我认为问题可能与 我有两个问题: 1) 我必须在点击下载按钮后手动刷新浏览器,以便它转换为上传按钮 2) 我不知道如何调用将upload按钮转换回upload按钮的方法 XHTML代码是:Java 将一个按钮替换为另一个按钮,java,primefaces,Java,Primefaces,编辑 我想把一个按钮换成另一个按钮 我有一个签出部分,它下载一个文件,然后在下载之后,必须用一个签入按钮来替换,这个按钮可以上传一个文件。上传后,“签入”按钮转换回“签出”按钮 警告:我认为问题可能与 我有两个问题: 1) 我必须在点击下载按钮后手动刷新浏览器,以便它转换为上传按钮 2) 我不知道如何调用将upload按钮转换回upload按钮的方法 XHTML代码是: <h:panelGrid id="panel"> <p:panel id="checkoutPanel"
<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。请看,我已根据链接中给出的建议进行了一些更改,我只需单击一次,但我必须手动更新浏览器,使其正常工作