3

私は JSF 2.0 で PhaseListener を使用していました。しかし、そのメソッドは毎回2回呼び出されています。

@Override
public void beforePhase(PhaseEvent arg0) {
    System.out.println("Start Phase "+arg0.getPhaseId()+" here the value "+ ++i +" object "+this);  
}

出力は次のようになります

Start Phase RESTORE_VIEW 1 here the value 1 object com.phaseListener.MyPhaseListener@cc8c29
Start Phase RESTORE_VIEW 1 here the value 1 object com.phaseListener.MyPhaseListener@106054a

2 つの異なるオブジェクトによって呼び出されるたびに。

教えてください、なぜそうなのですか??

4

3 に答える 3

1

これは、フェーズ リスナーを JSF アプリケーションに 2 回登録したためです。その「理由」は、構造的に答えられません。同じフェーズのリスナーが 2 回登録されるのが気になる場合は、2 回目の登録を削除してください。

于 2013-08-28T13:08:50.573 に答える
0

この問題は、Tomcat 7.0.4x を使用している場合に発生します。Tomcat を少なくとも 7.0.39 以下にダウングレードしてみてください。問題が解決する可能性は非常に高いです。理由はまだわかりませんが、うまくいきます。それが役に立てば幸い。

于 2013-12-30T19:25:53.430 に答える