ポートレットが使えるフレームワークはいくつかあるけど、近頃は、Wicket がどの程度きちんとポートレットで動くのかが気になる。Wicket に Ate が参加しているみたいだから、Teeda 並にまともに動くのではなかろうかと思い始めている(彼が本気でやってれば)。という感じで、気になるものの、Wicket 自体にも手を出せてない今日この頃(TT) そのうちためそう・・・。あとは、そろそろ MyFaces や Sun の RI もチェックしないとな。まぁ、Teeda のポートレット対応がそれらに簡単に追い抜かれることはないと思うけど、油断は禁物かと。
カテゴリー: Portlet
JSR 301
長い間、放置していたけど、JSF とポートレットのブリッジの仕様が Early Draft Review 2 になっている。っていうか、放置しすぎて、追随できてないけど、個人的には Teeda でどうするかというのがあるので、無視することもできない・・・。っで、チラッと見た感じだと、対象としているのが JSR 252 だから、急いで何かする必要はないかっと。そもそもの問題として、JSF がそこまで美しく、ポートレットを切り分けられるのかと疑問を持っているし。まぁ、どっちにしても、無視するわけにはいかないので、目を通さないといけない(これ実装すると、teeda-portlet みたいに切り出しになる気もするのだけど・・・)。そんな感じで、JSR 286 を読み終えていないにもかかわらず、読み物が一つ増えた・・・。今のところ、時間がないので、今後の TODO かね。
JSR 286 Portlet Specification 2.0 (PLT.11.1.1.14 – PLT.11.1.2)
1週間ぶりに続きから・・・
PLT.11.1.1.4 Public Render Parameters
他のポートレットとレンダーパラメータを協調できるようにするため、ポートレットはportlet.xmlにpublic-render-parameter要素を宣言できる。ここでいうポートレット間の共有とは、ポートレットアプリケーションを越える共有もできるみたい。Public Render Parameter(公開描画パラメータ?)はポートレットやコンポーネントから変更や参照が可能(コンポーネントが何をさすかは不明)。ポートレットは、supported-public-render-parameter要素をportlet要素の中で定義するようだ。
<public-render-parameter> <identifier>foo</identifier> <qname xmlns:x=”http://example.com/params”>x:foo.2</qname> </public-render-parameter> <public-render-parameter> <identifier>bar</identifier> <qname xmlns:x=”http://example.com/params”>x:foo.bar</qname> </public-render-parameter> <portlet> <portlet-name>portletA</portlet-name> ... <supported-public-render-parameter>foo</supported-public-renderparameter> </portlet> <portlet> <portlet-name>portletB</portlet-name> ... <supported-public-render-parameter>bar</supported-public-render-parameter> </portlet>
ポータルコンテナはsupported-public-render-parameterを使って定義されたポートレットに対して、Public Render Parameter を送る。
レンダーパラメタの吐き出しのURLは奨励されるだけで、ポータル実装では必須ではない。Public Render Parameter は供給されなきゃ、ポートレットでは null として扱われる。ポートレットがレンダーパラメータをnullにセットしたら、ポータルコンテナは削除したものとして扱うべし。公開または非公開レンダーパラメータに関係なく、PortletRequestのgetParameterメソッドでアクセスできる。または、getPrivateParameterMapやgetPublicParameterMapなどでもそれぞれにアクセス可能。(そんなメソッドが追加されたのか・・・)
qname要素でpublic render parameterは特定される。他の方法としては、default-namespace要素でデフォルトの名前空間を指定できるそうな。
あとは、l10nの話で、javax.portlet.app.public-render-parameter.<identifier>.display-name をリソースバンドルで与えれば、表示名を翻訳できるみたい。
PLT.11.1.1.5 Resource Request Parameters
serveResourceリクエストでは、ポートレットはResourceURL上からリソースパラメータを受けとるべし。
PLT.11.1.2 Extra Request Parameters
javax.portlet. で始まるパラメータ名は予約されている。
とりあえず、今日はここまで・・・。PLT.11はまだ長いな・・・。