2010-12-02 8 views
0

に送信された応答をキャプチャする方法JSF:私は、JSFアプリケーション内ヘルプ機能のいくつかの種類を実装したいクライアント

シナリオ:

私のアプリのユーザーが問題を抱えている、彼ら私にスクリーンショットを送ってください。これらは品質が悪く、私が望む情報が見えません。

私の考え:自分のjsf-Pageに「ヘルプ」ボタンを追加します。このボタンを押すと、hd上にクライアントに送信されるレンダリングレスポンス(結果のHTML)が保存されます。

は今、私はその生成されたHTMLファイルを開くことができますし、今、私の質問に私が欲しい情報(入力フィールドの値など)

を見ることができます。

このタスクはどのように実行できますか?

私はのPhaseListenerを試してみましたが、

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

を使用しますが、これは言い換えれば、結果のHTML

だけコンポーネントツリーであるとされていない:私は(FacesContext.getExternalContextの出力をキャプチャしたいです)。クライアントに送信する.getResponse()

アイデア?

+0

[サーバー側で生成された動的コンテンツをキャプチャする]の可能な複製(http://stackoverflow.com/questions/1963158/capture-generated-dynamic-content-at-server-side) – BalusC

答えて

2

FacesServletを中心にFilterを使用してください。 HttpServletResponseWrapperを定義し、元のオブジェクトのgetOutputStream()getWriter()リターンラッパーを作成します。ラッパーでは、元の実装に委譲するだけでなく、書き込まれたデータを別の場所に保管します。

+0

ヒントのおかげで – wutzebaer

関連する問題