2012-03-07 9 views

答えて

4

私は、phaseListenerが最初に、次にすべてのフィルタが必要です。

これはできません。フェーズ・リスナーは、JSF facesサーブレットによって実行されます。しかし、仕様によっては、の前にのいずれかのサーブレットが呼び出されます。あなたのアプローチを修正する必要があります。明らかに位相リスナーは実際にはがフィルタである必要があります。あなたが顔の文脈に全く依存していなければ、これは可能です。フィルタマッピングは、web.xmlの他のすべてのフィルタマッピングの前に置くことができます。

+0

Strange。 Wildfly 9.0.2を使用しており、フィルタの前にPhaseListenersが呼び出されています。 –

+0

@Olivier:それは間違っている可能性があります(例えば、chain.doFilter()コールの後に別のリクエストやフィルタの仕事が行われた場合) – BalusC

+0

あなたはそうです、フェーズリスナーがログインページを表示する前に呼び出されたという誤解のため、全く呼ばれなかった。今、私はなぜログインページを表示する前にフィルタが呼び出されていないのかわかりません。編集:私はなぜここに見つかりました:http://stackoverflow.com/questions/7793737/jsf-form-login-page-redirect-hits-before-my-filter;) –

0

パターンが同じに一致する場合、処理順序は記述子(web.xml)内のフィルタマッピングの順序によって決まります。

Xを最初に表示したい場合は、最初にリストします。

+0

私は位相リスナーを最初にしたいが、この後は測定しない。 – Ofer

関連する問題