JSF:如何捕获发送到客户端的响应
我想在我的 jsf 应用程序中实现某种帮助功能
场景:
当我的应用程序的用户遇到问题时,他们向我发送屏幕截图。这些质量很差,我看不到我想要的信息。
我的想法:我在 jsf 页面中添加一个“帮助”按钮。当按下此按钮时,我将发送给客户端的渲染响应(生成的 html)存储在我的硬盘上。
现在我可以打开生成的 html 文件并可以看到我想要的信息(例如输入字段的值)
现在我的问题。
我怎样才能执行这个任务?
我尝试过 PhaseListener 并使用
PrintWriter w = new PrintWriter(System.out); DebugUtil.simplePrintTree(FacesContext.getCurrentInstance().getViewRoot(),"",w);
但这只是组件树,而不是生成的 html
换句话说:我想捕获 FacesContext.getExternalContext().getResponse() 的输出,该输出发送给客户端
任何想法?
I want to implement some kind of help-functionality within my jsf-application
Scenario:
When the users of my app are having problems, they send me screenshots. These are of poor quality and I cannot see the information I want.
My idea: I add a "help"-Button into my jsf-Page. When this button is pressed I store the render-response (resulting html) that is send to client on my hd.
Now I can open that generated html-file and can see the information I want (e.g. values of inputfield)
Now my Question.
How can I perform this task?
I have tried PhaseListener and using
PrintWriter w = new PrintWriter(System.out);
DebugUtil.simplePrintTree(FacesContext.getCurrentInstance().getViewRoot(),"",w);
but this is just the component tree and not the resulting html
In other words: I want to capture the output of FacesContext.getExternalContext().getResponse() that is send to client
any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在
FacesServlet
周围使用Filter
。定义一个 HttpServletResponseWrapper 并依次使其getOutputStream()
和getWriter()
返回原始对象的包装器。在包装器中,除了委托给原始实现之外,还将写入的数据存储在其他地方。Use a
Filter
around theFacesServlet
. There define aHttpServletResponseWrapper
and in turn make itsgetOutputStream()
andgetWriter()
return wrappers of the original objects. In the wrappers, in addition to delegating to the original implementation, store the written data somewhere else.