从服务器下载文件时,如果我使用 a4j:commandLink 文件下载失败(平均文件写入浏览器屏幕),如果我使用 h:commandLink 则没关系。想要在文件下载时显示丰富的模态面板,但标准组件没有完成操作,因此我无法在文件下载后隐藏模式面板。如何解决此问题,我正在使用富有的面孔3.3
<h:commandLink value="Download"
action="#{logSearcher.downloadFile}"
onclick="Richfaces.showModalPanel('ajaxLoadingModalBox',{width:450, top:200})"
immediate="true" >
<f:setPropertyActionListener value="#{log}"
target="#logSearcher.selectedLogLine}"
/>
</h:commandLink>
答案 0 :(得分:2)
您可以使用de rich:componentControl或JS API show函数(#{rich:component('mp')}。show。。
http://livedemo.exadel.com/richfaces-demo/richfaces/modalPanel.jsf?s=blueSky#
答案 1 :(得分:1)
<a4j:commandLink>
默认发送异步(ajax)请求。您无法使用异步请求下载文件。 JavaScript根本不提供将XMLHttpRequest
响应转换为另存为对话框的工具。您需要使用正常的同步请求下载文件。 <h:commandLink>
就是这样做的。
最好的办法是使用onclick
的{{1}}属性来关闭模式面板。如有必要,请使用setTimeout()
。