2013-02-06 2 views
0

RichFaces와 함께 JSF 1.2를 사용하고 있습니다. 웹 브라우저 클라이언트의 "다른 이름으로 저장"을 모방 할 수 있습니까? 좀 더 정확히 말하면 페이지에 "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 파일마다 CSS 파서를 SAC과 같이 생각할 수 있습니다.

+0

대단히 감사합니다.이 작업을 수행해야합니다 !! – user2047024

관련 문제