2012-03-21 10 views
0

バックスインビーンで関数を呼び出していますが、jsfページを表示する前に、レンダリングするjsfページに依存する操作を行う必要があります。別のもの)。PhaseListenerを使用してレンダリングフェーズをインターセプトする

操作を実行して結果をセッションに格納する必要があるため、URLの名前を傍受してレンダリングする前に、ページをレンダリングする必要があります。

私は、ナビゲーションケースの名前ではなく、URLを取得するためにPhaseListenerを使用します。

例:関数 '実行は' 'ivIndex' を返しますが、私は '/zone/iv/index.xhtml' を取得する必要があります。

どうすればいいですか?

方法:

public String execute(){ 
    return nameUrl(); // return name of a navigation rule, per example : ivIndex 

のfaces-config.xmlの

<navigation-rule> 
    <from-view-id>*</from-view-id> 

    <navigation-case> 
     <from-outcome>ivIndex</from-outcome> 
     <to-view-id>/zone/iv/index.xhtml</to-view-id> 
    </navigation-case> 

答えて

0

を使用でき

FacesContext.getCurrentInstance().getViewRoot().getViewId(); 
関連する問題