OSC2008 Tokyo/Fall に申し込みました。そしたら、早速、http://www.ospn.jp/osc2008-fall/ に参加グループとしてのせていただきました(ありがとうございます)。一応、予定では、ブース出展とセミナー(45分)を予定してます。セミナーは「JSR 168 ポートレット入門」という感じで申し込んでみました。Seasar Conference とかぶる内容がある気がするけど、Seasarの方は Teeda と SAStruts に触れると思うけど、OSC の方は JSR 168 的なところに時間を使おうかと(というか、Seasarの方でカットされそうな内容をそっちに持っていこうかと)。という感じで、ポータル・ポートレットの宣伝活動をしていきます~。
投稿者: shinsuke
SAStruts for Portlet
https://www.seasar.org/svn/sastruts/trunk/sa-struts-portlet/
にコミット。結構、辛い戦いだったが、ボタンなどサブミットされたときのアクション処理はprocessActionで実行するように変更。これにより、リダイレクトも普通に処理されるはず。そんで、ファイルアップロードも動いているみたい(特に何もしないでも動いた)。まぁ、こういう作りの方が自然だな。そんでもって、ブラウザの戻るボタンのサポート。サーブレットでは必要ないのだろうけど、結構、これも面倒で、ポートレットの場合、単純に再描画が実行されることがあったりするから、デフォルトで10個状態を保存している(Teedaのポートレット対応も同じ方法で状態を管理する必要があるんだろうな・・・疲れたから後日考える)。まだ、例外処理部分で怪しいところがあると思うけど、sa-struts-tutorial も JavaScript の名前空間とかの問題以外は動いていると思う(一部、a タグのリンクを s:link に書き換える必要はあるけど)。あと、ダウンロードのやつも直接レスポンスを呼ぶから動きません。個人的には、結構、いい感じに動いていると思うので良しとしよう。使い方とかは、あとでまとめよっと(ぼちぼち一段落しないと他の作業がたまるし・・・)。
SAStruts for Portlet
リダイレクトは、やっぱり processAction で何とかしたいな~、ということで知恵を絞る。っで、いろいろと見た感じだと、S2RequestProcessor の process(request,response) 処理で exportPropertiesToRequest のところまでを processAction で処理して、その状態(JSPのパスやリクエストのAttributeなど)を保持して、続きを render でやれば良さそうな気がしてきた。まだ細かい問題があるけど、そんな感じで修正したら、動くと思う。まぁ、これするのに processActionでサーブレットにディスパッチができないから、ポートレットの中でサーブレットを初期化してインスタンスを保持して、サーブレットフィルタの実行環境を書いたりと・・・。これらが一段楽したらコミットしよっと。結構、勉強になった。