在后端呈现JSF页面并将输出保存到文件

在后端呈现JSF页面并将输出保存到文件,jsf,seam,Jsf,Seam,我将JSF1.2与Seam 2.2.2一起使用 如果我能在代码中呈现一个来自的页面,并将输出保存到一个文件中,而不是将其发送到客户机,那么我将非常痛苦 //Trind最简单的方法就是自己发送一个HTTP请求(在本地主机上执行时应该特别便宜) 如果您希望在与当前客户端相同的会话中请求它,并且您的服务器接受URL重写,那么请使用以下URL InputStream input = new URL("http://localhost:8080/context/page.jsf;jsessionid="

我将JSF1.2与Seam 2.2.2一起使用

如果我能在代码中呈现一个来自的页面,并将输出保存到一个文件中,而不是将其发送到客户机,那么我将非常痛苦


//Trind

最简单的方法就是自己发送一个HTTP请求(在本地主机上执行时应该特别便宜)

如果您希望在与当前客户端相同的会话中请求它,并且您的服务器接受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();
// ...

最简单的方法就是自己发送一个HTTP请求(在本地主机上执行时应该特别便宜)

如果您希望在与当前客户端相同的会话中请求它,并且您的服务器接受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();
// ...

如果是HTML,听起来像是过滤器的声音,但我不知道JSF将如何处理当前页面/bean(如果是ViewScoped bean,它会删除它吗)?或者浏览器会做什么(毕竟它发送了一个请求,但没有收到任何回复,尽管Ajax可能会缓解这一问题)。我甚至不确定应该如何开始呈现页面(faclets)的代码。如果是HTML,听起来像是过滤器的声音,但我不知道JSF将如何处理当前页面/bean(如果是ViewScoped bean,它会删除它吗)?或者浏览器会做什么(毕竟它发送了一个请求,但没有收到任何回复,尽管Ajax可能会缓解这一问题)。我甚至不确定我应该如何从代码开始呈现页面(faclets)。是的,但这很笨拙。我可以从头顶上看出JSF 2.x,但目前还不能从JSF 1.2。啊,好吧,如果你有精力,请告诉我你是否会通知它:)@BalusC:openStream创建JSF页面时,
preRenderView
事件未调用。我如何打开一个jsf页面并流式传输
preRenderView
事件(也称为事件)的内容?@BalusC:谢谢。我使用Spring安全性。打开所需页面时,
openStream
打开了我的注销url。我将
RequestContextHolder.currentRequestAttributes().getSessionId()
添加到所需url,但它无法打开此url。我如何打开我的url?我使用了cookies,它工作正常。谢谢@BalusCYes,但这太笨拙了。我可以从顶部判断JSF 2.x,但目前还不能判断JSF 1.2。好吧,如果你有精力,请告诉我,我会通知你:)@BalusC:openStream打开JSF页面时,
preRenderView
事件未调用。我如何打开一个jsf页面并流式传输
preRenderView
事件(也称为事件)的内容?@BalusC:谢谢。我使用Spring安全性。打开所需页面时,
openStream
打开了我的注销url。我将
RequestContextHolder.currentRequestAttributes().getSessionId()
添加到所需url,但它无法打开此url。我如何打开我的url?我使用了cookies,它工作正常。谢谢@BalusC