2010-12-02 90 views
0

我要实现我的JSF应用程序中的一些什么样的帮助,功能JSF:如何捕捉响应是发送到客户端

场景:

当我的应用程序的用户有问题,他们向我发送截图。这些质量很差,我看不到我想要的信息。

我的想法:我添加一个“帮助”按钮到我的jsf页面。当按下这个按钮时,我存储发送到客户端的渲染响应(生成的html)。

现在我可以打开生成的html文件,可以看到我想要的信息(例如inputfield的值)

现在我的问题。

我该如何执行此任务?

我已经试过的PhaseListener和使用

PrintWriter w = new PrintWriter(System.out); DebugUtil.simplePrintTree(FacesContext.getCurrentInstance().getViewRoot(),"",w);

但这仅仅是组件树,而不是生成的HTML

换句话说:我想捕捉FacesContext.getExternalContext的输出( ).getResponse()即发送给客户端

有什么想法?

+0

[捕获在服务器端生成的动态内容]的可能重复(http://stackoverflow.com/questions/1963158/capture-generated-dynamic-content-at-server-side) – BalusC 2010-12-02 17:46:34

回答

2

围绕FacesServlet使用Filter。在那里定义了一个HttpServletResponseWrapper,然后使其getOutputStream()getWriter()返回原始对象的包装。在包装中,除了委托给原始实现之外,还将写入的数据存储在别的地方。

+0

感谢提示 – wutzebaer 2012-07-06 15:37:46

相关问题