2011-06-29 14 views
2

Primefaces 2.xとMojarraを使用しています。サイトにログインしてすべてのCookieを削除する特定のケースを処理しようとしています。次に、メニューオプションをクリックします。私たちがしたいことは、ユーザがログイン画面にリダイレクトされることです。問題は、「url」属性を使用していないため、Primefaceが部分ページのajax呼び出しを実行することです。空の応答を返します。Ajax Primefaceからのステータス/応答データ

この時点で、セッションIDがなければセッションはありません。したがって、サーバー上ではセッションなしでAjaxコールの真っ只中にいます。 sendRedirectを試してみると、ブラウザに302が送信されますが、PrimefacesまたはブラウザはAjax呼び出しの一部であるため、ブラウザを無視しています。

だから私がしたいのは、Ajaxレスポンスにリスナーを置き、場所または302の変更を探すことです。しかし、私はjsf.ajax.addOnEventを使用する方法を見つけることができません。 Primefacesは標準のJSF Ajax呼び出しを使用していないようです。私はAjaxStatusを見ましたが、それは私にはイベント、DATA、データへのアクセスはありません。

ユーザーが削除したJSESSIONID Cookieを探すことができると考えましたが、Javascriptを使用してCookieを印刷すると、セッションIDは印刷されません。

私はAjaxコールの真中にいるので、Session Filterでresponse.sendRedirectを実行できないようです。そして、私はそれが必要であることを知っていれば私はできるユーザーをリダイレクトする必要があることをクライアント上で検出することはできません。そして、私はPrimefaces Ajaxレスポンスから何の情報も得られないようです。

答えて

0

メニューとは、p:menuItemコンポーネントを意味します。アクション属性を使用してマネージでメソッドを呼び出すと仮定すると、属性ajax = "false"を使用してみてください。私はそれを使用し、それは私のためにうまくいく。