我遇到一个奇怪的情况我有一个commandButton(我已经尝试了标准的h:commandButton和primefaces一个p:commandButton),当点击按钮时,调用了一个支持bean的方法,一个Excel文件是return.This命令按钮在对话框中,但我认为这不应该影响。
问题是,似乎这个按钮没有生成任何请求,至少firebug没有显示它,但是我从服务器获取了Excel文件,如果没有请求则没有意义。< / p>
<h:commandButton id="downloadButton" value="Download" action="#{bean.downloadExcel}"/>
<p:commandButton id="downloadButton" value="Download" action="#{bean.downloadExcel}" ajax="false" onsuccess="confirmDialogWv.close();"/>
我没有同时使用这两个按钮,只是测试了两个按钮的结果相同。
如果“一切正常”会有什么问题?如果我没有任何请求,我无法使用onsuccess事件关闭对话框。
之前有人遇到过这个问题吗?任何解释?
提前感谢您的帮助!
编辑:
<h:form id="contentForm" prependId="false" >
<!-- lot of code -->
<p:dialog id="confirmDialog"
modal="true"
closable="false"
widgetVar="confirmDialogWv"
resizable="false"
header="Confirm">
<p:commandButton id="downloadButton" value="Download" action="#{bean.downloadExcel}" ajax="false" onsuccess="confirmDialogWv.close();"/>
<p:commandButton id="openHtmlButton" value="Open HTML" process="@form" update="@form" actionListener="#{bean.openHtml}"/>
</p:dialog>
</h:form>
第二个按钮打开一个新窗口并正常工作。
更新:
正如已经说过的firebug没有显示任何请求,但我现在一直在测试IE和Chrome。
Chrome:显示请求,但当我在浏览器中获取Excel文件时,请求的状态将被“取消”。
IE9:显示请求并返回代码200,但未触发onsuccess事件