在Primefaces 5.1中,我使用fileDownload组件从tomcat webapps文件夹下载xls,但文件下载无效。
user.xhtml
<p:dialog modal="true" widgetVar="statusDialog" header="Status" draggable="false" closable="false" resizable="false">
<p:graphicImage name="/demo/images/ajaxloadingbar.gif" />
</p:dialog>
<h:form>
<p:commandButton value="Download" ajax="false" action="#{user.FileDownloadView}" onclick="PrimeFaces.monitorDownload(start, stop);" icon="ui-icon-arrowthick-1-s">
<p:fileDownload value="#{user.file}" />
</p:commandButton>
</h:form>
<script type="text/javascript">
function start() {
PF('statusDialog').show();
}
function stop() {
PF('statusDialog').hide();
}
</script>
user.java
private StreamedContent file;
public void FileDownloadView()
{
InputStream stream =((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getResourceAsStream(".../webapps/project/root/user.xls");
file = new DefaultStreamedContent(stream, "application/xls", "user.xls");
}
当我单击commandButton状态对话框打开并隐藏但未显示下载选项。我检查日志文件,文件存在于我的webapps文件夹中,但文件没有下载。我更改命令按钮操作以替换actionListener但也无法正常工作