2012-11-25 91 views
2

我使用JSF 1.2和Seam 2.2.2渲染JSF頁面的後端和輸出保存到文件

而且woundering如果我能夠從與代碼中呈現頁面和輸出保存到一個文件,而不是發送給客戶端。

// Trind

+0

聽起來像過濾器的聲音,如果它是HTML,但我不知道JSF如何處理當前頁面/ bean(如果它是一個ViewScoped bean它會刪除它)? – SJuan76

+0

或瀏覽器會做什麼(畢竟它已發送請求並且沒有收到回覆,儘管也許Ajax會緩解這一點)。 – SJuan76

+0

我不知道我甚至應該開始從代碼呈現頁面(faclet)。 – Trind

回答

4

最簡單的方法將只發送一個HTTP請求自己(在本地主機上執行時應當特別便宜)。

InputStream input = new URL("http://localhost:8080/context/page.jsf").openStream(); 
// ... 

如果你想在同一會話中請求它作爲當前客戶端和服務器接受URL重寫,然後用下面的URL來代替。

InputStream input = new URL("http://localhost:8080/context/page.jsf;jsessionid=" + session.getId()).openStream(); 
// ... 

或者如果您的服務器不接受URL重寫,但只接受cookie,請改爲使用以下方法。

URLConnection connection = new URL("http://localhost:8080/context/page.jsf").openConnection(); 
connection.setRequestProperty("Cookie", "JSESSIONID=" + session.getId()); 
InputStream input = connection.getInputStream(); 
// ... 
+0

不可能做到這一點,而不需要調用一個url? – Trind

+0

是的,但那很笨拙。我可以從頭開始看到JSF 2.x,但現在不能用於JSF 1.2。 – BalusC

+0

啊okey,如果你有能量,請讓我知道會appriciate :) – Trind