JSF:如何捕获发送给客户端的响应

时间:2010-12-02 17:33:34

标签: jsf serialization response capture

我想在我的jsf-application

中实现某种帮助功能

场景:

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

我的想法:我在我的jsf-Page中添加了一个“帮助”-Button。按下此按钮时,我存储了发送到我的高清客户端的渲染响应(生成的html)。

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

现在我的问题。

我该如何执行此任务?

我尝试过PhaseListener并使用

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

但这只是组件树而不是生成的html

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

任何想法?

1 个答案:

答案 0 :(得分:2)

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