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

发布于 2024-10-05 06:44:50 字数 562 浏览 2 评论 0原文

我想在我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

dawn曙光 2024-10-12 06:44:50

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

Use a Filter around the FacesServlet. There define a HttpServletResponseWrapper and in turn make its getOutputStream() and getWriter() return wrappers of the original objects. In the wrappers, in addition to delegating to the original implementation, store the written data somewhere else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文