[Seasar-user:6690] Re: コマンドボタン・リンクのRenered + Acrion指定の動作確認

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 3月 14日 (水) 19:37:11 JST


米林です。

From: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, March 14, 2007 7:23 PM

>
> 松原です。
>
>  ご返信、有難うございます。
> ご質問の回答です。
>  ・>ちなみに、Teeda Extensionを使用したHTMLベースでしょうか?
>  ・>それとも、Teeda CoreだけのJSPでしょうか?
>  ⇒ Teeda CoreだけのJSPです
>
>  ・>具体的なページの情報も教えて頂けますか?
>  ⇒ コマンドボタンの記述箇所を抜粋します
> <TD valign="bottom" align="right">
>   <h:commandButton id="FixBtn1" value="登録"
rendered="#{xxx_xxXxPage.renderedFlg == 'regit'}"
action="#{xxx_xxXxPage.doRegit}"  onclick="isFunc_RegitKakunin();"  />
>   <h:commandButton id="FixBtn2" value="登録"
rendered="#{xxx_xxXxPage.renderedFlg == 'edit'}"
action="#{xxx_xxXxPage.doEdit}"   onclick="isFunc_EditKakunin();"   />
>   <h:commandButton id="FixBtn3" value="削除"
rendered="#{xxx_xxXxPage.renderedFlg == 'delete'}"
action="#{xxx_xxXxPage.doDelete}" onclick="isFunc_DeleteKakunin();" />
> </TD>
>
> 見づらくて、申し訳ございませんが
> 宜しくお願い致します。

これは、renderedの評価対象のxxx_xxXxPageが
RequestScopeであることが原因だと思います。
レンダリングされる際のxxx_xxXxPageと
ボタンを押した際のxxx_xxXxPageのインスタンスが異なる為
(RequestScopeはリクエストの度にインスタンスが生成されます)
ボタンを押したリクエスト時は、xxx_xxXxPage.renderedFlgが
初期値のfalseになっていると予想されます。

解決するには、renderedの評価対象をSessionScopeにするか
もしくはhiddenを使って、renderedFlgを異なるリクエストで
引き継ぐかするしかないと思います。
JSFで画面に表示されているボタンは実行されると思い
結構はまることがあります。

よろしくお願いします。
---
米林 正明
[E-MAIL ADDRESS DELETED]




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