使用struts2在jsp上渲染pdf流

时间:2012-05-16 07:04:53

标签: java java-ee struts2

我在我的网络应用程序中使用struts2。我想在jsp上呈现pdf流。我目前正在这样做:

public String renderPDF() throws Exception
{
     myService.rederPDF(getServletResponse().getServletOutputStream());
     return SUCCESS;
}

myService的rederPDF方法获取pdf流并写入servlet响应输出流。但是这引发了一个例外,即“响应已经被提交”。

1 个答案:

答案 0 :(得分:0)

如果您在转发前已向客户端发送了一些内容,则会发生此异常。

我使用Servlets下载文件。看看。

public class FileDownloadServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    byte[] b = null;
    ServletOutputStream sop = null;

    try {
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition","attachment; filename=yourFileName.pdf");          

        sop = response.getOutputStream();
        b =  myService.getFileData(); /* your code */
        sop.write(b);    
        return;         
    } catch (Exception e) { 
        /* some code*/
    }
    finally{ 
        /* some code*/
    }
}
}