[Seasar-user:11964] Re: Teedaエラーメッセージ

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2007年 12月 7日 (金) 13:12:43 JST


中村(taedium)です。

> どうしても削除したいとはいえません。実は、こちのプロジェクトにこんな問題があるわけです。
> リンク一とリンク二があります。
> リンク一をクリックして、画面一が表示されます。
> リンク二をクリックして、画面二が表示されます。
> 画面一に問題があるので、最初に表示されるとき、エラーメッセージが出てきます。
> しかし、リンク一をクリックして、画面一が完全に表示される前に(エラーメッセージがまだ出てこない時)、リンク二をクリックして、画面一エラーメッセージが画面二へ遷移してしまう、つまり、画面二で画面一のエラーメッセージが表示されています。
> 
> だから、画面二が初期化されている時エラーメッセージを削除したらいいと思います。

<span id="allMessages"></span>をconditionのdivタグで囲って、
画面二の初期化時には表示しないように制御したらいいと思います。

conditionの使い方はこちらを参照してください。
http://teeda.seasar.org/ja/extension_component_reference.html#condition


> FacesContextをorg.seasar.teeda.core.context.servlet.ServletFacesContextImplにキャストし
>> messagesフィールドの値をリフレクション」でどういう意味ですか?
> サンポルを見せていい?

conditionを使ってもらいたいのですが、一応。
こんな感じになると思います。

ServletFacesContextImpl context = (ServletFacesContextImpl) facesContext;
Field f = context.getClass().getField("messages");
f.setAccessible(true);
List messages = (List) f.get(context);
messages.clear();
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



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