ようやく、原因もわかり、JSF の commandLink が動くようになった・・・。この問題は、どちらかというと、dojoのバグのような気がする。dojoのFormBindを使うとボタンとか押されたときのイベントをチェックして、ボタンに与えられている、名前・値ペアを送信してくれるのだけど、commandLinkのように、aタグ経由でformをサブミットされると、フォーム内にある一番最初にあるボタンの名前・値ペアを送信してくれる。というわけで、aタグでformをサブミットするときには、aタグがクリックされたという情報を与えねばならない・・・。ということを考えると、やっぱりdojoのバグだよな・・・。まぁ、J2では、修正ができたのでコミットしておこ。う~ん、JavaScript Debugger を使った、デバッグ技術が向上したような気がする・・・。あとは、Ajax時代には Live HTTP headers も欠かせないな・・・。
カテゴリー: Jetspeed
TEEDA-42
J2Desktopをいじっていて、遭遇した問題だが、よく考えたら、Teedaの問題の気がしてきたので、Teedaにバグをあげておく。J2の方は、一応、回避する修正を入れた(すべてのポートレットを再リリースするのも面倒だし)。SunRIとMyFacesの方を見たけど、どっちも、チェックしているみたいだけど、MyFacesの方がちゃんと処理しているような気もするな(じっくり見たわけじゃないけど)。
J2Desktop問題
ここ数日、十分に時間を取ることができなかったが、ちょっとは進めた。まず、Teeda ベースのVFSポートレットだと、form のactionで()が%~に変換されるので、J2Desktopがjavascript:doAction(を期待しているので、動作しなかった。これは、(を削除するような修正をJ2に入れればよいだろう。そんで、今悩んでいるのは、dataTable内で列にcommandLinkとcommandButtonの両方を使うようなものを作ると、commandLinkをクリックすると、イベントが両方に送られる・・・。結構、致命的。原因は、なぜか、押されてもいないのに、commandButtonの名前・値が送信される。うむむ、なぜだ。J2Desktopはこの辺をdojo.io.Requestみたいなものを使うように変更しているから、その辺を見てみないとわからぬ。う~ん、恐るべし、dojo。これが修正されたら、とりあえず、marevol.comを差し替えて、PAL Portal 1.0 beta1 と言う感じで、リリースしてしまおうかと、考えているのだが。