2012-11-25 113 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