Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session JSF2.0在当前会话中获取xhtml页面的内容_Session_Jsf_Pdf_Flying Saucer - Fatal编程技术网

Session JSF2.0在当前会话中获取xhtml页面的内容

Session JSF2.0在当前会话中获取xhtml页面的内容,session,jsf,pdf,flying-saucer,Session,Jsf,Pdf,Flying Saucer,我正在尝试使用飞碟将JSF页面转换为PDF @ManagedBean @SessionScoped public class ReportController { ... public void createPDF() { FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getE

我正在尝试使用飞碟将JSF页面转换为PDF

@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(字符串uri)为从指定url加载文档创建了新连接(和新会话)。如何在当前会话中获取xhtml页面内容(使用所有参数值)?

抓取by并将其ID添加为
jsessionid
URL路径片段

HttpSession session = (HttpSession) externalContext.getSession(true);
String url = "http://myserver.com/report.xhtml;jsessionid=" + session.getId();
// ...

请注意,查询字符串(如果有的话)应该在后面,而不是前面。

注意,突出显示的语法提示,
内容处置
标题值中的引号已断开。