StrutsベースのBC4J JSPアクションの作成方法

BC4J JSPページで起動できるアクションは2種類あります。

次の手順では、両方の目標を説明します。

BC4J JSPページのStrutsアクションを作成するには、次のようにします。

  1. ビジネス・コンポーネント・プロジェクトを含むワークスペースで、新規のStrutsアクション・クラスを作成するJSPプロジェクトを選択します。

  2. 「Struts-Based JSP for Business Components」のウィザードの1つを使用し、データ・バインドされたJSPページを生成します。

  3. 「Struts Action」ダイアログを使用し、デフォルトでサブクラス化されるクラスをプロジェクトに追加します。

    org.apache.struts.action.Action

アクション・クラスのBC4Jコンテキストを取得するには、次のようにします。

  1. コード・エディタで、生成されたアクション・ファイルを開きます。

  2. 任意のBC4J JSPページのデータ・バインドされたコンテキストを取得できる、次のimport文を追加します。

    import oracle.jbo.html.BC4JContext;

    BC4JContext Beanは、ビジネス・コンポーネント操作を実行する際にアクション・クラスにより要求されます。これにより、アクションを起動するJSPページのビュー・オブジェクトの使用方法を取得できます。

  3. 次のコードを挿入することにより、BC4J JSPページのデータ・バインドされたコンテキストを取得します。

    BC4JContext context = BC4JContext.getContext(request);

アクション・クラスのビジネス・コンポーネント・ビュー・オブジェクトを操作するには、次のようにします。

  1. 次のimport文を追加し、BC4JContext Beanで定義されたビュー・オブジェクト・インスタンスで直接コールできるようにします。

    import oracle.jbo.ViewObject;

  2. ビュー・オブジェクトがアクション・マッピングを介して定義されているかどうかに応じて、次のいずれかを挿入することによりビュー・オブジェクト・インスタンスを取得します。

    アクション・マッピングがプロパティviewobjectを定義するか、またはアクションの .doリンク・リクエスト・パラメータの属性jboEventVoを使用してビュー・オブジェクト・インスタンスが渡された場合は、次のコードを挿入します。

    ViewObject viewObjectUsageName = context.getViewObject();

    または、ビュー・オブジェクトがリクエスト・パラメータのマッピングに定義されていない場合は、アプリケーション・モジュールから名前で取得できます。

    ViewObject viewObjectUsageName = context.getApplicationModule().findViewObject("viewObjectUsageName");

  3. ビュー・オブジェクト・インスタンスでのメソッド・コールを挿入します。たとえば、次のメソッドは、ビュー・オブジェクトの範囲サイズを決定し、現在位置を範囲内の最初の行に設定します。

    viewObjectUsageName.setRangeSize(5);
    viewObjectUsageName.first();

    注意: Strutsアクションでオブジェクトの範囲サイズを設定できるようにすることで、このアクションを起動するすべてのBC4J JSPページは、指定した行数を表示するようカスタマイズされます。デフォルトでは、BC4J JSPは10行を取得します。

successアクション・フォワードを返すには、次のようにします。

  1. アクションがビジネス・コンポーネント操作を指定するBC4Jコンテキストで動作しなかった場合は、停止できます。Struts findForward()メソッドは、フォワード値successを指定します。

    return mapping.findForward("success");

  2. Struts findForward()メソッドを次のようにコメント・アウトします。

    // return mapping.findForward("success");

    フォワード値successは、BC4JUtilsクラスにより返されるため定義する必要がありません。

  3. 拡張したアクション・クラスに応じて、アクション・フォワード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のビジネス・コンポーネント定義について

StrutsベースのBC4J JSPのアクションのマッピング