待辦事項 #7772

[Seasar-user:3063]m:rendered使用時のActionが呼ばれない(再)
啟用日期: 2005-12-29 15:53 最後更新: 2006-01-20 22:43

回報者:
負責人:
類型:
狀態:
關閉
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
檔案:

細節

以前、[Seasar-user:2844] に投稿した、
<span m:rendered> で囲った中にあるアクションが
実行されない、という問題ですが、
その後なぜか発生しなくなったので放っておいたのですが、
本日発生しましたので、再現できるサンプルを添付します。
解凍後、s2jsf-examples の/WEB-INF/lib をコピーしてくださ
い。

 再現手順は、
 
http://localhost:8080/viewLogTest/viewlog/ViewLog.html
  ↓
 一覧から適当なファイル名をクリックする
  ↓
 ダウンロードリンクが表示される
  ↓
 ボタンを押す
  ↓
 アクション(m:action="#{viewLog.downloadLog}")が実行さ
れない

 となります。

 ViewLog.html の、27行めと、36行めに
<span m:rendered="#{viewLogForm.selectedLogFile !
= ''}" >
</span>
 があり、これらをコメントにすると、アクションが実行されま
す。

 また、test.dicon 内の、instanceDef を、
REQUEST → SESSION にすると、
<span m:rendered= で囲まれている場合でも、アクションが実
行されます。

 とりあえず、SESSION で逃げますが。

Ticket History (3/4 Histories)

2005-12-29 15:58 Updated by: yone098
  • Summary Updated
2006-01-12 01:13 Updated by: manhole
  • 負責人 Update from (無) to yone098
2006-01-15 00:33 Updated by: yone098
評語
Logged In: YES
user_id=16111

m:rendered="#{1==1}" だと正常動作する為、単純に
m:rendered使用時のActionが呼ばれない(再)
には直接結びつかないと思われます。
評価対象のviewLogFormのインスタンスにより、イベントがキュー
イングされていないようなので、もう少し調査を継続します。
2006-01-20 22:43 Updated by: yone098
  • Ticket Close date is changed to 2006-01-20 22:43
  • 狀態 Update from 開啟 to 關閉
評語
Logged In: YES
user_id=16111

下記現象のため、closeします。manholeさんどうもですm(__)m

ボタン押下時にActionが実行されないのは、押下のタイミングでは
27行目のrenderedがfalseと評価されるためです。

- viewLogFormはREQUESTスコープにあるので、ボタン表示時と押下
時でインスタンスが異なります。押下時にはselectedLogFile属
性は初期値""になっています。
結果、押下時にはspanのrenderedはfalseになります。
- renderedがfalseのUIComponent配下は、encodeがスキップされま
す。
- ボタンのencodeがスキップされるため、Actionが実行されません。

ということが起こっています。

Attachment File List

No attachments

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入