我試圖用飛碟將JSF頁面轉換爲PDF。JSF 2.0在當前會話中獲取xhtml頁面的內容
@ManagedBean
@SessionScoped
public class ReportController {
...
public void createPDF() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
try {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(new URL("http://myserver.com/report.xhtml").toString());
renderer.layout();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename="report.pdf");
OutputStream browserStream = response.getOutputStream();
renderer.createPDF(browserStream);
} catch (Exception ex) {
...
}
facesContext.responseComplete();
}
}
在/report.xhtml頁,我有一些後臺bean的參數,它的值應該出現在PDF中。但他們沒有。如果我訪問xhtml頁面,則顯示值正確。 我認爲這是因爲renderer.setDocument(String uri)爲指定url中的加載文檔創建新連接(和新會話)。我如何在當前會話中獲取xhtml頁面內容(使用所有參數值)?
請注意,語法突出顯示提示您Content-Disposition標頭值中的引號已損壞。 – BalusC