JSF 拡張ポイント - Lifecycle | ライフサイクル制御

2009/06/24 13:06Update
TAGS: JSF | 拡張 | ライフサイクル

JSFフレームワークでは、ライフサイクルを制御するクラスがあります。あまりお勧めしませんが、このライフサイクルを制御するクラスさえも自前のクラスを入れ替えできます。

カスタムLifecycleの実装手順


1)javax.faces.lifecycle.Lifecycleを実装したクラスを定義します。

public abstract class Lifecycle
{
    public Lifecycle() {
        }
    public abstract void addPhaseListener(PhaseListener phaselistener);
    public abstract void execute(FacesContext facescontext) throws FacesException;
    public abstract PhaseListener[] getPhaseListeners();
    public abstract void removePhaseListener(PhaseListener phaselistener);
    public abstract void render(FacesContext facescontext) throws FacesException;
}

上のLifecycleクラスを継承して定義する必要があります。
※Lifecycleクラスは極めて重要な役割を果たしており、自前のLifecycleクラスを実装するのを極力に控えたほうがよいと思います。

実装例略。

2)web.xmlにカスタムカスタムLifecycleクラスを登録します。

web.xml
<context-param>
  <param-name>javax.faces.LIFECYCLE_ID</param-name>
  <param-value>yourself.LifecyleImpl</param-value>
</context-param>

これで、JSFのライフサイクルを制御するクラスは「yourself.LifecyleImpl」になります。

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments