2011-02-24 42 views
1

有没有可能在我的struts(1.2)动作中将我显示的页面内容按照“原样”格式导入到我的请求中?JSP页面缓冲行动

ServletInputStream is = a_request.getInputStream();; 
InputStreamReader isr = new InputStreamReader (is); 
BufferedReader bufRead = new BufferedReader (isr); 
while ((line = bufRead.readLine()) != null) { 
    result += line; 
} 
bufRead.close(); 

结果的值是 “”,我还试图用

的BufferedReader读者= a_request.getReader();

而不是getInputStream,但没有帮助,基本上我希望JSP正文进入一个缓冲区,所以我可以将它保存为HTML并将其转换为PDF。

有没有人有关于此的想法?

+0

ServletRequest.getInputStream()将HTTP请求的主体作为二进制流返回。那里没有HTML。请向我们解释你想要做什么。您想将HTML页面的全部内容发送到服务器,以便将其转换为PDF?或者您想缓冲您发送给浏览器的**响应**以将其转换为PDF? – 2011-02-24 12:57:05

+0

我希望将HTML页面的全部内容传输到服务器,以便将其转换为PDF。 – Vivek 2011-02-24 12:58:35

回答

1

必须使用JavaScript来获取页面的整个HTML源代码(请参阅How to get the entire document HTML as a string?How do I get the entire page's HTML with jQuery?),并将其提交(使用POST)到服务器。

但是,如果PDF转换器也需要CSS,图像等将页面转换为PDF,则可能会更困难。在这种情况下,一种解决方案是将当前页面URL发送到服务器,以便PDF转换器加载此URL并获取进行转换所需的所有内容。然而,这意味着页面不应该被保护,不应该由JavaScript等生成。