3. 概要¶
3.1. ポータルモジュールについて¶
ポータルモジュールは、ポートレットコンテナ上で動作します。
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 メソッドを呼び出します。
ポートレットでは、任意のボタンやコントロールにより、アクション URL へフォームデータをサブミットすることで、processAction を呼び出すことができます。
また、processAction内で Event を発生させることで、該当のポートレットの processEvent を呼び出すことができます。
processEvent を呼び出すためには、あらかじめポートレットコンテナに対して設定が必要です。
設定については、それぞれの開発モデルの章を参照してください。
3.4. ポートレットモード¶
ポートレットには以下のモードが存在し、ユーザが切り替えて表示内容を制御することが可能です。
VIEW モード EDIT モード CONFIG モード 設定ポータル用のモードで通常のポータル画面では表示されません。
ただし、モードをサポートするためには、あらかじめポートレットコンテナに利用するモードを設定しておく必要があります。
設定の仕方については、それぞれの開発モデルの章を参照してください。
3.5. ウィンドウステータス¶
ポートレットには以下のウィンドウステータスが存在し、ユーザが切り替えて表示内容を制御することが可能です。
NORMAL MAXIMIZE MINIMIZE コンテンツが表示されないため、ポートレットは呼び出されません。
3.6. ポートレット用画面¶
ポートレットの画面はポータル画面の一部として表示されるため、通常の画面と同様に作成することはできません。
詳細は 「画面を作成する上での注意事項」を参照してください。
そのため、通常の画面とポートレット画面で共通の画面を利用したい場合でも、別々に画面を作成する必要があるます。
ただし、画面表示や機能は共通にできるため、以下のようにポートレット画面をインクルードするような画面を作成することで、通常の画面用に画面を作り直す必要はなくなります。
実装方法については、それぞれの開発モデルごとに例を示します。
「ポートレットの開発(JavaEE 開発編)」または 「ポートレットの開発(JSP/Servlet 編)」を参照してください。