[Seasar-user:15376] Re: [Teeda] ダイナミックプロパティが全て終了するタイミングで任意の処理をしたい

はっしぃ [E-MAIL ADDRESS DELETED]
2008年 8月 13日 (水) 08:10:49 JST


小林 様

早々の回答ありがとうございます。 はっしぃです。

PhaseListenerを使った実装で、うまくキャッシュをクリアすることができました!!

本当に助かりました。
ありがとうございました。


2008/08/13 4:00 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> 小林 (koichik) です.
>
> Date:    Tue, 12 Aug 2008 22:07:41 +0900
> From:    "はっしぃ" <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:15373] [Teeda] ダイナミックプロパティが全て終了するタイミングで任意の処理をしたい
>
>> ダイナミックプロパティが全て終了するタイミングで任意の処理がしたいのですが、
>> なにかよい方法は、ないでしょうか?
>>
>> 理由は、
>> ・各画面の項目のデコード処理をダイナミックプロパティでやってしまっている。
>> ・デコード処理は、ThreadLocal を利用したコードキャッシュを実装している。
>> ・Tomcatがスレッドを再利用するため、上記タイミングでキャッシュをクリアしたい。
>> です。
>
> JSF の PhaseListener を使うのが簡単かも.
>
> public class MyPhaseListener implements PhaseListener {
>  public void afterPhase(PhaseEvent event) {
>    //ThreadLocal をクリア
>  }
>
>  public void beforePhase(PhaseEvent event) {
>  }
>
>  public PhaseId getPhaseId() {
>    return PhaseId.RENDER_RESPONSE;
>  }
> }
>
> を用意して,WEB-INF/faces-config.xml で
>
> <?xml version="1.0"?>
> <!DOCTYPE faces-config PUBLIC
>  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
>  "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
> <faces-config>
>  <lifecycle>
>    <phase-listener>
>      xxx.MyPhaseListener
>    </phase-listener>
>  </lifecycle>
> <faces-config>
>
> と登録すると,レンダリングが終わった後に
> 処理を行えます.
>
>> どうもprerender以降にダイナミックプロパティが実行されていたのを最近
>> 気がつきまして。。。orz
>
> "pre"render ですから.(^^;
>
>
> --
> <component name="koichik">
>    <property name="fullName">"Koichi Kobayashi"</property>
>    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内