我试图用飞碟将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