JSF1.2响应捕获,包括资源

JSF1.2响应捕获,包括资源,jsf,resources,richfaces,wrapper,Jsf,Resources,Richfaces,Wrapper,我将JSF1.2用于RichFaces。是否可以模仿web浏览器客户端的“另存为”?更准确地说,我想在页面上添加一个“下载zip”。其目的是生成包含HTML生成页面的zip存档,该页面包含所有必要的文件,以便以正确的布局打开该页面 过去,我通过HttpResponseWrapper成功地捕获了HTML页面。 但一旦页面包含RichFaces组件,就需要一些JS和图像才能正确显示。如何获得这些资源以将它们添加到zip中?使用HTML解析器,如。它可以通过类似jQuery的CSS选择器轻松找到CSS

我将JSF1.2用于RichFaces。是否可以模仿web浏览器客户端的“另存为”?更准确地说,我想在页面上添加一个“下载zip”。其目的是生成包含HTML生成页面的zip存档,该页面包含所有必要的文件,以便以正确的布局打开该页面

过去,我通过
HttpResponseWrapper
成功地捕获了HTML页面。 但一旦页面包含RichFaces组件,就需要一些JS和图像才能正确显示。如何获得这些资源以将它们添加到zip中?

使用HTML解析器,如。它可以通过类似jQuery的CSS选择器轻松找到CSS/JS/image元素,并返回资源URL,以便您可以单独下载它们

InputStream input = new URL(url).openStream();
// ... Save webpage itself.

Document document = Jsoup.parse(savedWebPage, "UTF-8", url);

for (Element stylesheet : document.select("link[rel=stylesheet]")) {
    InputStream input = new URL(stylesheet.absUrl("href")).openStream();
    // ... Save individual stylesheet file.
}

for (Element script : document.select("script[src]")) {
    InputStream input = new URL(script.absUrl("src")).openStream();
    // ... Save individual script file.
}

for (Element img : document.select("img[src]")) {
    InputStream input = new URL(img.absUrl("src")).openStream();
    // ... Save individual image file.
}

CSS背景图像不被考虑在内。你可以考虑一个CSS解析器,就像每个单独的CSS文件一样。

非常感谢,这必须做这个工作!!