我有一个数据表,用户将从该表中选择一些文件,当他点击“下载”按钮时,他将下载这些文件。下面的代码工作正常但是有一个InputStreamList,你可以在这里看到,不仅是第一个流,还必须下载其他流。有什么想法吗?
这是我的控制器方法;
StreamedContent file;
public void downloadFile(){
InputStream stream = streamList.get(0);
file = new DefaultStreamedContent(stream, "xml", getRandomName());
}
我的观点;
<p:commandButton value="Download"
ajax="false"
actionListener="#{myController.downloadFile()}"
icon="ui-icon-disk">
<p:fileDownload value="#{myController.file}" />
</p:commandButton>
答案 0 :(得分:0)
使用Javascript在每个文件上模拟onClick事件。
<p:commandButton value="Download" ajax="false" icon="ui-icon-arrowthick-1-s" styleClass="foo">
<p:fileDownload value="#{fileDownloadView.file}" />
</p:commandButton>
<p:commandButton value="DownloadAll" ajax="false" onclick="start()" icon="ui-icon-arrowthick-1-s"/>
function start() {
var buttons = $(".foo");
$(buttons).each(function(){
$(this).click();
});
}