3

私はデータテーブルを持っており、ユーザーはこのテーブルからいくつかのファイルを選択し、「ダウンロード」ボタンをクリックすると、これらのファイルをダウンロードします。以下のコードは完全に機能しますが、ここに示すように 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>
4

1 に答える 1

0

Javascript を使用して、各ファイルで onClick イベントをシミュレートします。

表示ファイル

 <p:commandButton  value="Download" ajax="false"  icon="ui-icon-arrowthick-1-s" styleClass="foo">
         <p:fileDownload value="#{fileDownloadView.file}" />
  </p:commandButton>

DownloadAll ボタン

<p:commandButton value="DownloadAll" ajax="false" onclick="start()" icon="ui-icon-arrowthick-1-s"/>

Javascript

function start() {                    
                    var buttons = $(".foo");
                    $(buttons).each(function(){
                    $(this).click();
                     });             

                    }
于 2014-12-05T09:49:54.667 に答える