我想在我的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()的输出
任何想法?
答案 0 :(得分:2)
在Filter
周围使用FacesServlet
。定义HttpServletResponseWrapper
,然后使其getOutputStream()
和getWriter()
返回原始对象的包装。在包装器中,除了委托原始实现之外,还将写入的数据存储在其他地方。