BC4J JSPページで起動できるアクションは2種類あります。
または、アクションでビジネス・コンポーネント操作を実行する場合は、次の処理を行います。
次の手順では、両方の目標を説明します。
BC4J JSPページのStrutsアクションを作成するには、次のようにします。
ビジネス・コンポーネント・プロジェクトを含むワークスペースで、新規のStrutsアクション・クラスを作成するJSPプロジェクトを選択します。
「Struts-Based JSP for Business Components」のウィザードの1つを使用し、データ・バインドされたJSPページを生成します。
「Struts Action」ダイアログを使用し、デフォルトでサブクラス化されるクラスをプロジェクトに追加します。
org.apache.struts.action.Action
アクション・クラスのBC4Jコンテキストを取得するには、次のようにします。
コード・エディタで、生成されたアクション・ファイルを開きます。
任意のBC4J JSPページのデータ・バインドされたコンテキストを取得できる、次のimport文を追加します。
import oracle.jbo.html.BC4JContext;
BC4JContext
Beanは、ビジネス・コンポーネント操作を実行する際にアクション・クラスにより要求されます。これにより、アクションを起動するJSPページのビュー・オブジェクトの使用方法を取得できます。
次のコードを挿入することにより、BC4J JSPページのデータ・バインドされたコンテキストを取得します。
BC4JContext context = BC4JContext.getContext(request);
アクション・クラスのビジネス・コンポーネント・ビュー・オブジェクトを操作するには、次のようにします。
次のimport文を追加し、BC4JContext
Beanで定義されたビュー・オブジェクト・インスタンスで直接コールできるようにします。
import oracle.jbo.ViewObject;
アクション・マッピングがプロパティviewobject
を定義するか、またはアクションの .do
リンク・リクエスト・パラメータの属性jboEventVo
を使用してビュー・オブジェクト・インスタンスが渡された場合は、次のコードを挿入します。
ViewObject viewObjectUsageName = context.getViewObject();
または、ビュー・オブジェクトがリクエスト・パラメータのマッピングに定義されていない場合は、アプリケーション・モジュールから名前で取得できます。
ViewObject viewObjectUsageName = context.getApplicationModule().findViewObject("viewObjectUsageName");
ビュー・オブジェクト・インスタンスでのメソッド・コールを挿入します。たとえば、次のメソッドは、ビュー・オブジェクトの範囲サイズを決定し、現在位置を範囲内の最初の行に設定します。
viewObjectUsageName.setRangeSize(5);
viewObjectUsageName.first();
注意: Strutsアクションでオブジェクトの範囲サイズを設定できるようにすることで、このアクションを起動するすべてのBC4J JSPページは、指定した行数を表示するようカスタマイズされます。デフォルトでは、BC4J JSPは10行を取得します。
successアクション・フォワードを返すには、次のようにします。
アクションがビジネス・コンポーネント操作を指定するBC4Jコンテキストで動作しなかった場合は、停止できます。Struts findForward()
メソッドは、フォワード値success
を指定します。
return mapping.findForward("success");
Struts findForward()
メソッドを次のようにコメント・アウトします。
// return mapping.findForward("success");
フォワード値success
は、BC4JUtils
クラスにより返されるため定義する必要がありません。
success
を定義します。
アクション・クラスがorg.apache.struts.action.Action
を拡張する場合。
return BC4JUtils.getForwardFromContext(context, mapping);
これで、ユーザーがアクションを起動できるようBC4J JSPページにHTMLリンクを作成する準備ができました。
ビジネス・コンポーネントWebアプリケーションでのStrutsサポートについて
StrutsベースのWebアプリケーションでのビジネス・コンポーネント・アクションについて
StrutsベースのWebアプリケーションでのBC4J JSPページ・フローについて
StrutsベースのWebアプリケーションでのBC4JContextについて
Struts ActionServletのビジネス・コンポーネント定義について