ポートレットが持つ最も有効な機能の 1 つは、他のポートレットと通信できる点です。
標準のポートレット API は通信メカニズムを定義しませんが、情報をパスする際の「メモ帳」として PortletSession を使用できます。
PortletSession は、複数のブラウザー要求を通じて、ポータルがユーザーの一時情報を識別および保存するために使用するメカニズムです。
アプリケーションのあるポートレットが PortletSession に書き込むことができ、アプリケーションの別のポートレットは、その値を読み取って使用できます。
ポートレット要求ライフ・サイクルにより、このような通信が可能になります。
ユーザー対話がポータル・ページで発生すると、以下のイベントが連続して起こります。
- イベントが発生したポートレットが、最初にイベントを処理します。このポートレットは、セッションのアプリケーション・スコープに属性を追加することができます。
その後、この属性は、アプリケーションのすべてのポートレットでアクセス可能となります。
- ポートレットがイベントへの応答を完了すると、ページの各ポートレット (イベントを
処理したポートレットを含む) は、それ自体をレンダリングします。
レンダリングの間、すべてのポートレットは、アプリケーション・スコープ属性にアクセスし、その属性を使用してユーザー・アクションに適切に応答できます。