после получения идеи от JOTN Я наконец-то смог ее собрать.
Мы можем использовать тег outputresource для ссылки на любой тип ресурса, не только статический, но идинамически создаваемые файлы (на лету).
Давайте рассмотрим следующий пример:
Страница JSF:
..
..
<ice:outputResource id="outputResource1" attachment="false" fileName="File1.pdf" label="Click to download attachment" mimeType="application/pdf" rendered="true" resource="#{ReportParam01.reportfilers}" shared="false"/>
..
..
ЗдесьЯ заметил, что ссылка на выходной ресурс не появится до тех пор, пока файл не будет сгенерирован (в случае документов «на лету»).
Допустим, мы хотим динамически сгенерировать файл PDF.Следующие шаги свяжут его с вышеупомянутым outputrespurce.
Управляемый компонент:
public class....{
....
// This is the resource linked to the <ice:outputresource> tag.
// Encapsulation has been done to link it.
Reource reportfilers;
....
public void createDocument() {
Document reportDoc = new Document(PageSize.A4);
File file1 = new File("Report.pdf");
PdfWriter.getInstance(reportDoc, new FileOutputStream(f));
// writing to pdf code continues
reportfilers = new FileResource(file1);
}
....
....
}
Вызов вышеупомянутого метода (если он не имеет исключений) сделаетссылка, чтобы показать, и пользователь может загрузить файл.