レベル: 中級 Christopher Jaun (cmjaun@us.ibm.com), Software Engineer, Web Development Tools, IBM Jim Zhang (jzhang@us.ibm.com), Advisory Software Engineer, Rational Application Developer Web Tooling, IBM
2007年 5月 29日 IBM® Rational® Application Developer V7 で利用できる連携ポートレット (cooperative portlet) ツールについて、単純な連携アプリケーションを作成して IBM® WebSphere® Portal 6.0 サーバーにデプロイしながら学びましょう。ここで示すサンプル・アプリケーションでは JSR (Java™ Specification Request) 168 の JavaServer™ Faces ポートレットを中心に説明しますが、基本ポートレットと Struts ポートレットについても簡単に説明します。
連携ポートレットの動作
連携ポートレットは、お互いにメッセージを送信することで通信しあうポートレットであり、次の 3 つの動作パターンがあります。
- ポートレットは、連携ソース (cooperative source) として動作することができます。つまり他のポートレットにデータを受け渡すことができます。
- ポートレットは、連携ターゲット (cooperative target) として動作することができます。つまり他のポートレットからデータを受け取ることができます。
- ポートレットは、連携ソースであると同時に連携ターゲットとして動作することもできます。Rational Application Developer
Version 7 は、ソース・ポートレットとターゲット・ポートレットを定義し、両者の間でデータの受け渡しを行うための一連のツールを提供しています。
IBM® WebSphere® Portal はポートレット間の通信を、プロパティー・ブローカーと Click-to-Action という 2 つの仕組みによって容易に行えるようにします。プロパティー・ブローカー機能は、JSR (Java™ Specification
Request) 168 ポートレットと IBM API ポートレットで使うことができます。Click-to-Action は、現在は IBM
API ポートレットでのみ使用できます。この記事では、プロパティー・ブローカー機能に焦点を絞ります。
プロパティー・ブローカーは WebSphere Portal が提供するサービスであり、一連のワイヤリングの定義に従ってソース・ポートレットからデータを受け取り、それをターゲット・ポートレットに受け渡すための、中心的なハブとして動作します。ひとつひとつのワイヤリングは、ソース・アクションとターゲット・アクションの間での
1 対 1 のマッピングにあたります。あるポートレットに対し連携機能が有効になると、そのポートレットが共有できるデータの型、そのデータの共有方法、そしてプロパティー転送のトリガーとなるアクションを定義する
WSDL (Web Services Description Language) ファイルが作成されます。
連携ポートレット・アプリケーションを作成するためには、次の 3 つの主なステップがあります。
- データ転送を、受信 (ターゲットの場合)、あるいは送信 (ソースの場合) のいずれかとして定義します。
- アクション処理を実装し、ポートレットが連携ソースの場合にはプロパティー・ブローカーに対しデータを利用可能にし、ポートレットが連携ターゲットの場合にはプロパティー・ブローカーからデータを受け取れるようにします。
- 連携ポートレット・アプリケーションをサーバーにデプロイし、ワイヤリング・ツールを使ってポートレット同士のワイヤリングを行います。
ここから先では、これらの各ステップをたどりながら、WebSphere Portal サーバーにデプロイ可能な、実際に動作する連携アプリケーションを作成します。
Rational Application Developer の連携ポートレット・ツール
例に入る前に、Rational Application Developer V7 で利用できる JSR 168 ポートレット用の連携ツールを簡単に見てみましょう。
Cooperative Source ウィザード
目的:
このウィザード (図 1) を使用して、ポートレットを連携ソースとして使用可能にします。Finish をクリックすると、共有するデータの型と共有方法、そしてプロパティーの転送をトリガーするアクションが定義された
WSDL ファイルが作成されます。転送するプロパティーを追加で定義する場合は、このウィザードを 1 つのポートレットに対して複数回実行します。
図 1. Cooperative Source ウィザード
このウィザードを利用するためには、
- Project Explorer で Portlet Deployment Descriptor ノードを展開し、ポートレットの上で右クリックします。
-
Cooperative > Enable this Portlet to Send Data (Source) を選択します。
このウィザードで作成、あるいは更新されるファイルは以下の通りです。
-
WebContent/wsdl/[portletName].wsdl: このファイルは、共有するデータの型と共有方法、そしてプロパティーの転送をトリガーするアクションを定義します。
-
WebContent/WEB-INF/portlet.xml: ウィザードは、WSDL ファイルを参照するポートレット設定を含むように、このファイルを更新します。
-
The properties file: オプションとしてキャプションの値が 2 つ、ポートレットのプロパティー・ファイルに追加されます。
Cooperative Target ウィザード
目的: このウィザード (図 2) を使用して、ポートレットを連携ターゲットとして使用可能にします。Finish をクリックすると、受け取るデータの型とプロパティー・ブローカーからのデータの取得方法、そしてデータを受け取った際に実行するアクションを定義した
WSDL ファイルが作成されます。
図 2. Cooperative Target ウィザード
このウィザードを利用するためには、
- Project Explorer で Portlet Deployment Descriptor ノードを展開し、ポートレットの上で右クリックします。
-
Cooperative > Enable this Portlet to Receive Data (Target) を選択します。
このウィザードで作成、あるいは更新されるファイルは以下の通りです。
-
WebContent/wsdl/[portletName].wsdl: このファイルは、受け取るデータの型とデータの取得方法、そしてデータの受け取り後に実行するアクションを定義します。
-
WebContent/WEB-INF/portlet.xml: ウィザードは、WSDL ファイルを参照するポートレット設定を含むように、このファイルを更新します。JSF (JavaServer™
Faces) ポートレットを有効にすると、入力プロパティーの名前とターゲット・アクションの名前を参照する 2 つの初期化パラメーターも追加されます。
-
The properties file: オプションとしてキャプションの値が 2 つ、ポートレットのプロパティー・ファイルに追加されます。
Cooperative Source Trigger
目的: このウィザード (図 3) を使用して、JavaServer Faces あるいは 基本連携ソース・ポートレットに対するアクション処理のステップを実装します。このウィザードにより、プロパティーの転送をトリガーするために必要な入力要素が
JSP (JavaServer Pages™) に挿入され、また、プロパティー・ブローカーに対してデータを利用可能にするためのアクション処理コードが生成されます。生成されたコードは、アプリケーションの細かな要件に合わせて変更を必要とする場合があります。
図 3. Cooperative Source Trigger の設定
このツールを利用するためには、
-
Palette ビューで Portlet drawer を開きます。
-
Cooperative Source Trigger アイテムを JSP pageにドラッグします。
このウィザードで更新されるファイルは以下の通りです。
-
The JSP: 適当な UI データが JavaServer Pages ファイルに追加されます。リンクまたはボタンのいずれかが追加されます。そのリンクまたはボタンをクリックすると、プロパティーの転送がトリガーされます。
-
ページ・コード・ファイル (JSF の場合のみ): ページ・コードの中にアクション・メソッドが作成され、それによってプロパティー・ブローカーが共有データを利用できるようになります。
-
ポートレット・クラス (基本の場合のみ): ウィザードは、プロパティー・ブローカーが共有データを利用できるように、processAction() メソッドを更新します。
Project Explorer
目的: 連携アクションとデータ型は、ポートレットの子として Project Explorer (図 4) に表示されます。これにより、どんなソース・ポートレットとターゲット・ポートレットが有効になっているかの全体像を把握することができます。このビューから、連携編集ウィザードと削除ダイアログにアクセスすることもできます。
図 4. 連携ポートレットの Project Explorer ビュー
この情報を利用するためには、
- Project Explorer で Portlet Deployment Descriptor ノードを展開します。
- ポートレット・ノードを展開します。
Edit Data Type ウィザード
目的: このウィザード (図 5) は、ソース・ポートレットあるいはターゲット・ポートレットを有効にするために使用するウィザードと同じように動作します。編集対象のデータ型を
Project Explorer から選択すると、その値があらかじめ入力された状態でウィザードが起動します。何らかの変更を行った場合は、WSDL
ファイルに新しいエントリーが作成されるのではなく、既存の値が更新されます。
図 5. Edit Data Type ウィザード
このウィザードを利用するためには、
- Project Explorer で Portlet Deployment Descriptor ノードを展開し、次に編集対象のデータ型を含むポートレットを展開します。
- そのデータ型が関連付けられているアクションを展開し、それを右クリックします。
-
Edit Data Typeを選択します。
このウィザードで更新されるファイルは以下の通りです。
-
WebContent/wsdl/[portletName].wsdl: WSDL ファイル内の既存の値を更新します。
-
WebContent/WEB-INF/portlet.xml: Faces ポートレットを編集する際に、必要に応じて、入力プロパティーの名前とターゲット・アクションの名前を参照する 2 つの初期化パラメーターが更新されます。
Delete Action ダイアログと Delete Data Type ダイアログ
目的: これらのダイアログによって、アクションあるいはデータ型を、WSDL ファイルから自動的に削除することができます (図 6 と図 7)。
図 6. Delete Action ダイアログの画面
図 7. Delete Data Type ダイアログの画面
これらのツールを利用するためには、
- Project Explorer で連携アクション・ノードあるいはデータ型ノードを右クリックします。
-
Delete を選択します。
これらのツールで更新されるファイルは以下の通りです。
-
WebContent/wsdl/[portletName].wsdl: WSDL ファイルから、アクションあるいはデータ型を削除します。
-
WebContent/WEB-INF/portlet.xml: Faces ポートレットを編集する際に、入力プロパティーの名前とターゲット・アクションの名前を参照する 2 つの初期化パラメーターが必要に応じて削除されます。
Disable Cooperative アクション・ダイアログ
目的: このダイアログ (図 8) は、あるポートレットに関連付けられたすべての連携関連成果物を削除し、そのポートレットを連携ポートレットではない状態に戻します。
図 8. Disable Cooperative アクション・ダイアログの画面
このツールにアクセスするためには
- Project Explorer で、対象のポートレット・ノードを右クリックします。
-
Disable Cooperativeを選択します。
このツールで削除、あるいは更新されるファイルは次の通りです。
-
WebContent/wsdl/[portletName].wsdl: このファイルを削除します。
-
WebContent/WEB-INF/portlet.xml: WSDL ファイルへの参照と、作成されたすべての初期化パラメーターを削除します。
では、チュートリアルを始めましょう。
ステップ 1. データ転送の型を定義する
ここでは、1 つのソース・ポートレットと 1 つのターゲット・ポートレットを持つ、単純な JSR 168 Faces ポートレット・アプリケーションを作成します。ソース・コードの中で、ユーザーが名前を入力して値をターゲット・ポートレットに表示できるようにします。
ポートレット・プロジェクトを作成する
まず、新しい JSR 168 Faces ポートレット・プロジェクトを作成します。
- Rational Application Developer V7 で File > New > Project を選択します。
-
Portlet Project を選択し、次に Next をクリックします (Portal Development を使用可能にするかどうかの確認画面が表示された場合はOK をクリックします)。
-
Project name として JSRFacesCooperative と入力します。
-
Target Runtime として WebSphere Portal V6.0 が選択され、Add project to an EAR チェックボックスが選択されていることを確認します。
-
Portlet API に JSR 168 Portlet が指定され、Portlet type に Faces Portlet が指定されていることを確認します。
-
Portlet name として JSRFacesCooperativeSource と入力します。
-
Next をクリックし、そして Finish をクリックします (Web Perspective への切り替えを促す画面が表示された場合は切り替えます)。
今度は、ターゲットとする 2 番目のポートレットをプロジェクトに追加します。
-
JSRFacesCooperative プロジェクトを右クリックし、New > Portlet を選択します。
-
New Portlet wizardで、このポートレットの名前を JSRFacesCooperativeTarget と指定します。
-
Next をクリックし、そして Finish をクリックします。
ポートレットでデータの共有を可能にする
今度は Cooperative Source ウィザードを使って、ソース・ポートレットがデータを共有できるように設定します。
- Project Explorer で Portlet Deployment Descriptor ノードを展開します (図 9)。
-
JSRFacesCooperativeSource ポートレットを右クリックし、Cooperative > Enable this Portlet to Send Data (Source) を選択します。
図 9. Portlet Deployment Descriptor ノードを展開する
ウィザードの最初のページ (図 10) で、共有するデータの型を定義します。
注意:
URL と Java の型を定義する必要があります (画面には URL ではなく URI と表示されています)。2 つのポートレットをワイヤリングしてデータを共有できるのは、その
2 つのポートレットが同じ Data Type URL を定義している場合のみです。
- Data Type URL を
http://jsrfacescooperative#name に変更します。
- この例では単純なストリング・データを共有しているのみなので、Java™ type はjava.lang.String のままにします。ただし、ここではもっと複雑なオブジェクト (例えば Java bean など) を指定することもできます。
図 10. 共有するデータの型を定義する
- Next をクリックします。
ステップ 2. アクション処理を実装する
ウィザードの 2 番目のページ (図 11) で、プロパティーの転送をトリガーするソース・アクションを定義します。JSR 168 ポートレットでは、ここで指定する名前と値を持つパラメーターがアクション・リクエストの中に存在する場合にプロパティーの転送がトリガーされます。
-
Action Parameter はそのままにし、Action Value を
SendName に変更します。
また、このページでは、ソース・ポートレットから送信されるデータを含む変数の名前と場所も指定します。上で指定したソース・アクションが発生すると、プロパティー・ブローカーは
(ターゲット・ポートレットに送信できるように) この場所を参照し、出力プロパティーを取得します。
-
Location には Request attribute を指定します。
ヒント:
コンビネーション (コンボ) ボックスをプルダウンすると、いくつかの異なるスコープで出力プロパティーを保存できることがわかります (例えばパラメーターやセッションのスコープなど)。
-
Property Name を outputName に変更します。
図 11. プロパティーの転送をトリガーするアクションを定義する
-
Nextをクリックします。
キャプション名を入力する (オプション)
このウィザードの次のページ (図 12) は、オプションとしてキャプションの値を入力するためのものです。キャプションは、ワイヤリング・ツールの中で、プロパティーとアクションの名前を指す単純な名前として使われます。キャプションの値は、ポートレット・アプリケーションのユーザーには表示されません。
図 12. ワイヤリング・ツールが使用するキャプション名を入力する
-
Resource Bundle フィールドはデフォルト設定のままにします。
-
Property キャプションと Action キャプションもそのままにし、Next をクリックします。
ウィザードの最終ページ (図 13) は、連携アプリケーションを設定するための、次のステップを表示します。後で参照するために、このファイルを保存することができます。
図 13. 設定における次のステップに関する説明
-
Finishをクリックします。
これで、最初のポートレットがソースとして使用可能となりました。WebContent/wsdl/JSRFacesCooperativeSource.wsdl ファイルを開くと、このファイルにはウィザードで入力したさまざまな項目が入っていることがわかります。また、Project Explorer でポートレットのアイコンが変更されており、それを展開すると、先ほど定義したアクションとデータ型が表示されることにも注目してください。
プロパティーの転送をトリガーする UI コントロールを挿入する
今度は Cooperative Source Trigger を使って JSP ファイルに UI (user interface) を追加し、アクションを作成し、そしてそのデータをプロパティー・ブローカーが利用できるようにします。
- ソース・ポートレットの JSP ファイル、JSRFacesCooperativeSourceView.jsp を開き、 Place content here テキストを
Enter Name:に変更します (コロンも含めます)。
-
Palette から JSP pageの上に JSF Input コンポーネントをドラッグし、それを Enter Name: テキストの後ろにドロップします。
-
Page Data View で右クリックし、新しい Param Scope 変数を作成します。名前は
nameParam とします。
-
parameter を JSP の上の input コンポーネントにドラッグし、新しい Param Scope 変数を input コンポーネントにバインドします。
-
Palette でPortlet drawer を開きます。
-
Cooperative Source Trigger を選択し、それを JSP の中の Input コンポーネントの隣にドロップします。
-
Insert Cooperative Source Trigger wizard ウィザードが表示されたら (図 14)、Source portlet として JSRFacesCooperativeSource を選択します。
-
Action Value コンボ・ボックスをプルダウンし、Cooperative Source ウィザードで定義したアクションを選択します。
-
Property Name コンボ・ボックスをプルダウンし、Cooperative Source ウィザードで定義したプロパティー名を選択します。
-
Value to Send フィールドの隣にある Browse ボタンを選択してパラメーター・ノードを展開し、先ほど作成した nameParam パラメーターを選択します。
-
OK をクリックします。
図 14. Insert Cooperative Source Trigger ウィザード
-
UI type は Link のままにし、Finish をクリックします。
- JSP (図 15) にリンクが表示されるはずです。もし変更したければ、テキストを
Send Name に変更します。
図 15. JavaServer Page (JSP)
これで、ソース・ポートレットはデータを共有する準備ができました。Page Designer のソース・ビューに切り替えると、パラメーターを 1 つ持つコマンド・リンクが作成されていることがわかります。このパラメーターは、ウィザードの中で定義した
Action Parameter (ACTION_NAME_PARAM) と Action Value (SendName) を持っています。ユーザーがこのリンクをクリックすると、これらの値はアクション・リクエストの中に入れられ、それによってプロパティーの転送がトリガーされます。
- 今度は Source ページを右クリックし、Edit Page Code を選択します。
-
doCooperativeLinkAction() メソッドが表示されるまで下にスクロールします。ここで、Cooperative Source ウィザードで指定した Property Name
(
outputName) と共に、送信するデータをリクエスト・スコープの中に置きます。
ターゲット・ポートレットでデータの受信を可能にする
次に、Cooperative Target ウィザードを使って、ターゲット・ポートレットがデータを受信できるように設定します。
-
roject Explorer で Portlet Deployment Descriptor ノードを展開します (図 9)。
-
JSRFacesCooperativeTarget ポートレットを右クリックし、Cooperative > Enable this Portlet to Receive Data (Target) を選択します。
-
Data Type URI (URL) コンボ・ボックスをプルダウンし、ソース・ポートレットで定義したものと同じデータ型を選択します (図 16)。
重要:
2 つのポートレットの間でプロパティーの転送を行うには、データ型が一致している必要があります。
-
Java type はそのままにし、Next をクリックします。
図 16. 受信するデータの型を選択する
 |
Faces ポートレットのオプション
Faces ポートレットでは、ターゲット・アクションとしてその JSP ページ自体を指定することができます。その場合、プロパティー・ブローカーはターゲット・ポートレットに対し、単純に
JSP ページの再レンダリングを要求します。
Faces ポートレットがサポートする、もう 1 つのオプションとして、ボタンをターゲットとして使うことができます。もしボタンが指定された場合は、そのボタンに
(Action 属性で) 関連付けられたアクション・メソッドが呼び出されます。また Faces ポートレットでは、プロパティー名がターゲット
JSP ページの入力フィールドを直接指すことが許されています。Faces ポートレットは、自動的にプロパティーの値を入力フィールドにセットします。これを、ターゲット・アクションとしてのボタンと組み合わせて使用することにより、ユーザーは、ボタンに対する既存のアクション
(通常は入力フィールドから値を取得しようとします) を再利用することができます。
3 番目のオプションとして、単純にカスタム・アクションの名前を指定し、そのアクションをポートレットの processAction() メソッドの中から処理することができます。このためにはカスタムのポートレット・クラスを使う必要があります。このクラスは
FacesPortlet を継承する必要があることに注意してください。
このチュートリアルでは、JSP をターゲット・アクションとして使います。
|
|
-
Action Value (図 17) の隣にある Browse をクリックして、ダイアログから JSRFacesCooperativeTargetView.jsp を選択し、OK をクリックします。
- Location は Request Param のままにして、Property Name を
inputName に変更します。
注意:
ターゲット・ポートレットで利用可能なデータがプロパティー・ブローカーにある場合、プロパティー・ブローカーは、ターゲット・アクションを呼び出し、そのデータを
Property Name で指定したパラメーターで利用できるようにしてから指定された場所に置きます。その後、利用するデータをアクション処理フェーズの間に取得するのは、そのポートレットの役目となります。
図 17. 転送のオプションとアクションを指定する
-
Next をクリックします。
-
Action キャプションを、読みやすいもの (
Name Target Action など) に変更します。これによって、後でワイヤリング・ツールを使う際に、どのアクションを処理しているのかを理解しやすくなります。
-
Finish をクリックします。
今度は、受け取ったデータを表示するための UI データをターゲット JSP に作成します。
- ターゲット JSRFacesCooperativeTargetView.jsp を開きます。
-
Place content here テキストを
Display Name:に変更します (コロンも含めます)。
- パレットから JSP に JSF Output コンポーネントをドロップします。
-
Page Data View で、
inputName (Cooperative Target ウィザードで設定されたプロパティーの名前) という名前の Param scope 変数 (Cooperative Target ウィザードで設定されたプロパティーの場所) を作成し、そしてこの変数を Output コンポーネントにバインドします。
ステップ 3. ポータル・サーバーにプロジェクトをデプロイする
これで、プロジェクトを WebSphere Portal サーバーにデプロイする準備が整いました。
-
JSRFacesCooperative プロジェクトを右クリックし、Run As… > Run on Server を選択します。
- 必要な情報を入力し、Finish をクリックします。
- WebSphere Portal 6.0 でのテストの詳細については、Rational Application Developer V7 の
Help を参照してください。
ポートレット・ページが Web ブラウザーにロードされると、図 18 のように表示されるはずです。
図 18. Web ブラウザーにポートレットが表示された様子
データの転送を開始する前に、これらのポートレット同士をワイヤリングする必要があります。
- 左側の列でページの名前をクリックし、Edit Page Layout を選択します (図 19)。
図 19. ページ・レイアウトを編集する
- 次にページの最上部にある Wires タブを選択し、ワイヤリング・ツールを起動します (図 20)。
図 20. ワイヤリング・ツールを起動する
- ページ上にあるいくつかのコンボ・ボックスを使いながら、適切にデータを入力します。
- 終わったら、+ (プラス記号) ボタンをクリックし、Done を選択します。すると、ポートレットに戻ります。
- 今度は Enter Name フィールド (図 21) にテキストを入力し、リンクをクリックします。
図 21. 送信する名前を入力する
ソース・ポートレットに入力したテキストが、ターゲット・ポートレットに表示されていることがわかります。
リンクのかわりにコマンド・ボタンを使う方法
ここで説明したアプリケーションは、コマンド・リンクを使ってプロパティーの転送をトリガーしていますが、コマンド・ボタンを使うこともできます。両者の主な違いは、アクション・リクエストへのアクション・パラメーターと値の渡し方にあります。
コマンド・リンクを使うJSP ソースコードとコマンド・ボタンを使うソースコードを比べてみましょう。コマンド・リンクの場合、パラメーター (<f:param>) が子要素としてネストされていることに注目してください (リスト 1)。コマンド・リンクがクリックされると、JavaServer Faces フレームワークは、そのパラメーターをリクエスト・パラメーターとしてアクション・リクエストに置きます。
リスト 1. コマンド・リンクを使う場合のコード
<h:form id="form1" styleClass="form">
Enter Name: <h:inputText id="text1" styleClass="inputText"
value="#{param.nameParam}"></h:inputText>
<h:commandLink id="link1" styleClass="commandLink"
action="#{pc_JSRFacesCooperativeSourceView.doCooperativeLinkAction}">
<f:param id="parameter1" name="ACTION_NAME_PARAM" value="SendName"></f:param>
<h:outputText id="text2" styleClass="outputText" value="Send Name"></h:outputText>
</h:commandLink>
</h:form>
|
今度は、これに似た、コマンド・ボタンを使うコードを見てみましょう (リスト 2)。主な違いは、アクション・パラメーターが Faces パラメーターに入った状態で渡されるのではなく、HTML の隠しフィールド要素を使って渡されている点です。これは、Faces パラメーター (<f:param>) がコマンド・ボタンの子要素である場合には、JavaServer Faces フレームワークは Faces パラメーターをアクション・リクエストに追加しないためです。
リスト 2. コマンド・ボタンを使う場合のコード
<h:form id="form1" styleClass="form">
Enter Name: <h:inputText id="text1" styleClass="inputText"
value="#{param.nameParam}"></h:inputText>
<INPUT type="hidden" name="ACTION_NAME_PARAM" value="SendName">
<hx:commandExButton type="submit" value="Submit" id="button1"
styleClass="commandExButton" action="#{pc_JSRFacesCooperativeSourceView.doButton1Action}">
</hx:commandExButton>
</h:form>
|
この 1 つの変更以外は、コマンド・リンクとコマンド・ボタンはまったく同じように動作します。
JSR 168 基本ポートレットと Struts ポートレットの、Faces ポートレットとの違い
Faces と基本、Struts それぞれの連携アプリケーションの間の主な違いは、アクションの処理方法と、プロパティー・ブローカーにデータを渡す方法にあります。これら 3 つのポートレット・タイプのどの場合も、プロパティーの転送がトリガーされるのは、Cooperative Source ウィザードで与えられた名前と値を持つリクエスト・パラメーターがアクション・リクエストに提供された時です。
- JSR 168 Struts ポートレットの場合を除いて、名前と値には任意のストリングを使用することができます。JSR 168 Struts ポートレットでは、パラメーターの名前は
spf_strutsAction でなければなりません。これはすべての Struts アクションに対するデフォルトのパラメーター名であり、変更することはできません。Struts
ポートレットは Struts アクションを使ってプロパティーの転送をトリガーします。Struts アクションが発生すると、そのアクション・クラスがデータをプロパティー・ブローカーに渡します。
-
Faces ポートレットは通常、アクションの名前と値を、JSP 内のパラメーターを使ってアクション・リクエストに渡します。そして Faces アクションを使って、そのデータをプロパティー・ブローカーに渡します。これについては、ここまでに示した例の中で見てきました。
-
基本ポートレットも、アクションの名前と値を、JSP からアクション・リクエストに渡します。これは通常、パラメーター (<
portlet:param>) 、アクション URL (<portlet:actionURL>)、あるいはフォームの隠しフィールドを使って行われます。そしてデータは、ポートレット・クラスの processAction() メソッドによってプロパティー・ブローカーに渡されます。
これらのステップの例を見るには、Cooperative Source ウィザードあるいは Cooperative Target ウィザードの中で、 Next Steps ページに達するまで Next をクリックします。そこでは、JSP の中でアクションをトリガーするために必要なステップと、プロパティー・ブローカーにデータを渡す方法を見ることができます。
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | |  | Christopher は IBM Software グループの一部である IBM Rational ブランドのソフトウェア・エンジニアです。彼は Web 開発ツールを中心とした業務を行っており、それ以前は Rational Application Developer の Portlet Development Tools コンポーネントの開発者でした。 |
 | |  | Jim は IBM Software グループの一部である IBM Rational ブランドのアドバイザリー・ソフトウェア・エンジニアです。彼は現在、Rational Application Developer 製品の Web Rapid Development Tools コンポーネントの開発チームのリーダーです。それ以前は、Rational Application Developer の Portlet Development Tools コンポーネントの技術リーダーでした。 |
記事の評価
|