【问题标题】:JSF: How to capture response that is send to clientJSF:如何捕获发送给客户端的响应
【发布时间】:2010-12-02 17:33:33
【问题描述】:

我想在我的 jsf 应用程序中实现某种帮助功能

场景:

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

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

现在我可以打开生成的 html 文件并看到我想要的信息(例如输入字段的值)

现在我的问题。

我该如何执行这项任务?

我已经尝试过 PhaseListener 并正在使用

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

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

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

有什么想法吗?

【问题讨论】:

标签: jsf serialization response capture


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 2013-04-27
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2016-01-20
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多