h:命令按钮oncomplete action

时间:2011-06-09 06:18:17

标签: jsf richfaces download

从服务器下载文件时,如果我使用 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>

2 个答案:

答案 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()