问题
I am trying to export collection of dtos to excel with primefaces like this (the same as primefaces showcase demo, which is working).
<p:commandButton value="Export">
<p:dataExporter type="xls" target="results" fileName="game_statistics" />
</p:commandButton>
I observed with firebug and it makes request, also the response looks like file content, but no file save/open dialog is popping. I am using mojarra 2.1.1 and tomcat 6 for app server.
回答1:
The <p:commandButton>
sends by default an ajax request. You can't download files with ajax. Ajax is executed by Javascript, but Javascript has due to security restrictions no way to force a Save As dialogue and pass the ajax response to it.
You need to add ajax="false"
to the component:
<p:commandButton value="Export" ajax="false">
Or just use a regular <h:commandButton>
:
<h:commandButton value="Export">
回答2:
Enclose it into <h:form>...</h:form>
and it will work
For example:
<h:form>
<p:commandButton value="Export">
<p:dataExporter type="xls" target="results" fileName="game_statistics" />
</p:commandButton>
</h:form>
回答3:
Primefaces doesn't support dynamic columns if you're using ones (by dynamic column I mean dynamic column attributes values). You can use POI for a workaround, but I don't know what exactly are you trying to do. Show us some code. What version of Primefaces are you using?
来源:https://stackoverflow.com/questions/7729028/primefaces-excel-export-is-not-working-no-open-save-dialog-is-shown