JSR 168 に準拠したポートレットを作成しようとすると、FORM の GET が使えない。しかし、実際問題としては、ブログの記事に対するリンクを使いたいなど、要求はあるのではなかろうか。と言うわけで、これに対する対策をいろいろと考える。はじめは、はじめにサーブレットにアクセスさせて、セッションなどのパラメータを入れて、リダイレクトと考えたけど、それだと、サーブレットからポートレットへセッションの受け渡しの方法がないので、無理と言うことが判明。ということで、次は、ポートレット上にJavaScriptを置いて、そこで、URLにパラメータがあれば、再読込することにした。というわけで、作成したコードは以下のような感じ。
<h:form id="redirectForm"> <h:inputHidden id="blogid"/> </script> </h:form>
上のコードはJSFを使ったポートレットの場合。実際のフォームのactionには、ActionURLが入っている。うーん、他にもっと良い方法があったら、教えて欲しいところです。