intra-mart Accel Platform ポートレット プログラミングガイド 第11版 2019-08-01

3. 概要

3.1. ポータルモジュールについて

ポータルモジュールは、ポートレットコンテナ上で動作します。
intra-mart アプリケーションをポートレットとして利用するためのラッパーが標準で準備されているため、旧バージョンまでで利用していたポートレットもそのまま利用することが可能です。
portal_overview

<intra-mart ポータルモジュール構成>

3.2. ポートレットの種類

ポータルモジュールで利用可能なポートレットは、開発モデルに5つに分類されます。

ポートレットの種類 開発モデル
intra-mart アプリケーションとして作成されたポートレット スクリプト開発モデル
JavaEE 開発モデル
JSP/サーブレット
SA Struts
Spring

次章では、これらのポートレット種別ごとにポートレットを開発する方法を説明します。

3.2.1. JSP/Servletを利用したポートレット開発

上記以外に、intra-mart のフレームワークを利用せず、JSP や Servlet で開発した Web ページをポートレットとして登録することも可能です。
これらを作成する場合は、標準的な Web アプリケーションの開発方法で作成することができます。
ただし、Struts のような Web アプリケーションフレームワークは、通常の Web ページを作成するためのフレームワークであるため、ポートレットを作成するためには適しておりません。
ほとんどの場合、そのままポートレットとして利用することはできませんので、ポートレット用に修正する必要があります。
具体的には以下の点に注意して修正してください。
  • ポートレットはポータル画面からINCLUDEして呼び出されるため、ポートレット処理中にFORWARD処理することができません。
    Struts では、特に処理を記述しない限り自動的に FORWARD されるため、必ず Action クラスの処理内で RequestDispatcher#include()を呼び出すようにしてください。
  • その他、struts-config.xml 内での FORWARD 処理も利用できませんので注意してください。
  • また、ServletFilter のターゲットは FORWARD のみですので、もし Filter を利用する必要がある場合、INCLUDE をターゲットに追加するようにしてください。

3.3. ポートレットのライフサイクル

ポートレットは、ポータル画面および他のポートレットと協調動作するために、以下のライフサイクルメソッドが定義されています。

processAction ポートレットに対する処理の実行メソッド
processEvent processAction から派生したイベントの受信処理メソッド
render ポートレット画面の描画処理

通常、ポータル画面に対するリクエストはポートレットコンテナによって受け付けられて、ポートレットコンテナは各ポートレットの render メソッドを呼び出します。

render_flow

<ポータル render 処理フロー>

ポートレットでは、任意のボタンやコントロールにより、アクション URL へフォームデータをサブミットすることで、processAction を呼び出すことができます。
また、processAction内で Event を発生させることで、該当のポートレットの processEvent を呼び出すことができます。
action_flow

<ポータル processAction / processEvent 処理フロー>

processEvent を呼び出すためには、あらかじめポートレットコンテナに対して設定が必要です。
設定については、それぞれの開発モデルの章を参照してください。

3.4. ポートレットモード

ポートレットには以下のモードが存在し、ユーザが切り替えて表示内容を制御することが可能です。

VIEW モード  
EDIT モード  
CONFIG モード 設定ポータル用のモードで通常のポータル画面では表示されません。
ただし、モードをサポートするためには、あらかじめポートレットコンテナに利用するモードを設定しておく必要があります。
設定の仕方については、それぞれの開発モデルの章を参照してください。

3.5. ウィンドウステータス

ポートレットには以下のウィンドウステータスが存在し、ユーザが切り替えて表示内容を制御することが可能です。

NORMAL  
MAXIMIZE  
MINIMIZE コンテンツが表示されないため、ポートレットは呼び出されません。

3.6. ポートレット用画面

ポートレットの画面はポータル画面の一部として表示されるため、通常の画面と同様に作成することはできません。
詳細は 「画面を作成する上での注意事項」を参照してください。
portal_compare

<ポータル画面と通常画面との比較>

そのため、通常の画面とポートレット画面で共通の画面を利用したい場合でも、別々に画面を作成する必要があるます。
ただし、画面表示や機能は共通にできるため、以下のようにポートレット画面をインクルードするような画面を作成することで、通常の画面用に画面を作り直す必要はなくなります。
portal_share

<通常の画面とポートレット画面を共用する>

実装方法については、それぞれの開発モデルごとに例を示します。