Стратегия для p:fileDownload
с диалогом с загрузкой
Я пытаюсь сделать панель загрузки после начала загрузки файла. Моя кнопка загрузки выглядит так:
<p:commandButton id="btnFirstType"
styleClass="bt_princ"
value="Download File"
onclick="loading.show()"
ajax="false">
<p:fileDownload value="#{mbean.myFile}"/>
</p:commandButton>
<p:dialog modal="true"
widgetVar="loading"
header="Status"
draggable="false"
closable="false">
<p:graphicImage value="/loading.gif" />
</p:dialog>
А мой MBean такой:
public StreamedContent getMyFile(){
return this.getReport(Type.CSV); //I assure this works, debugged...
}
Проблема в том, что после нажатия кнопки загрузки, если я запускаю диалог загрузки, загрузка не происходит.
Я думал об использовании p:poll
для проверки логической переменной, чтобы я знал, когда файл был сгенерирован, чтобы я мог показать диалоговое окно после нажатия кнопки (например, установка setTimeout
с JavaScript), но это Может быть, моя ошибка в том, как все это происходит. Любое другое предложение?
PS1: опрос перестает работать после загрузки файла, поэтому я не буду знать, когда закрыть диод
PS2: я использую Primefaces 2.2 и не могу обновить.
PS3: Обнаружено это обходной путь, но «оно будет» в версии 3, поэтому я не могу его использовать.