【问题标题】:JSF 1.2 response capture including resourcesJSF 1.2 响应捕获,包括资源
【发布时间】:2013-02-06 14:11:48
【问题描述】:

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

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

【问题讨论】:

    标签: jsf resources richfaces wrapper


    【解决方案1】:

    使用像 Jsoup 这样的 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 文件上使用像 SAC 这样的 CSS 解析器。

    【讨论】:

    • 非常感谢,这必须完成!
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    相关资源
    最近更新 更多