2013-02-06 167 views
0

我正在使用JSF 1.2與RichFaces。是否有可能模仿Web瀏覽器客戶端的「另存爲」?更確切地說,我想在頁面上添加一個「下載zip」。其目的是生成一個包含HTML生成頁面的zip存檔,其中包含所有必需的文件,以正確的佈局打開該頁面。JSF 1.2響應捕獲包括資源

我成功過去通過HttpResponseWrapper捕獲HTML頁面。 但是,只要頁面包含RichFaces組件,就需要一些JS和圖像才能正確顯示。我如何獲得這些資源來將它們添加到zip中?

回答

0

使用像Jsoup這樣的HTML解析器。它可以通過類似jQuery的CSS選擇器輕鬆找到CSS/JS /圖像元素,併爲您提供資源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解析器。

+0

非常感謝你,這必須做的工作! – user2047024