[Seasar-user:7511] Re: [Teeda] メッセージ出力時のdivによる表示・非表示処理について

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 5月 7日 (月) 10:44:55 JST


大谷です。

Condition(isXxx, isNotXxx)では描画すべきかどうかのタイミングで
FacesMessageが含まれているかを見ています。
Validationにひっかかった場合にそのまま判断されると都合が悪いからです。

なので、doHoge()メソッドのように、FacesMessageUtil.addErrorMessage
してしまうと、現状ではisNotHogeになってしまいます。

これはTeedaの不具合な部分もあるので、ConditionでValidationエラーだと
判断する条件を、FacesMessageのSeverityがERRORかFATALの場合のみに
絞ります。

なので、

> public String doHoge() {
> hoge = true;
> FacesMessageUtil.addErrorMessage("hoge"); ...(1)
> return null;
> }

を

public String doHoge() {
hoge = true;
FacesMessageUtil.addInfoMessage("hoge"); ...(2)変更部分
return null;
}

のように記述してください。JSFでは画面へのメッセージ的な場合には
FacesMessage.SEVERITY_INFOを使います。
Teeda側もこれで動くように修正します。
宜しくお願いします。

07/05/01 に Satoshi Takei<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 武居です。
>
> 以下のhtmlで、メッセージを出力すると、divによる表示・非表示がうまく動き
> ません。
>
> <form id="hogeForm">
>
> <span id="allMessages"/>
>
> <div id="isNotHoge">
> isNotHoge
> <input type="submit" id="doHoge"/>
> </div>
> <div id="isHoge">
> isHoge
> </div>
>
> </form>
>
> でhogeフラグに応じて表示・非表示を切り替えようとしましたが、
> ボタンのイベントハンドラで、
> public String doHoge() {
> hoge = true;
> FacesMessageUtil.addErrorMessage("hoge"); ...(1)
> return null;
> }
> とし、(1)のFacesMessageUtil.addErrorMessageを使用してメッセージを出力し
> たところ、
> <div id="isNotHoge"> → 表示
> <div id="isHoge"> → 非表示
> となりました。
> (1)をコメントアウトし、メッセージの出力を抑止すると、
> <div id="isNotHoge"> → 非表示
> <div id="isHoge"> → 表示
> となりました。
>
> メッセージ出力を行った場合でも、hoge=true時に、
> <div id="isNotHoge"> → 非表示
> <div id="isHoge"> → 表示
> とするには、どのようなhtmlを書けば良いでしょうか?
>
> --
> 武居聡([E-MAIL ADDRESS DELETED])
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



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