リリース9.0.3より前のJDeveloperでは、BC4J JSPページは<jbo:ApplicationModule>
データ・タグと<jbo:DataSource>
データ・タグのみを使用して、ビジネス・コンポーネント・ビュー・オブジェクトへのデータ・バインドを取得しました。作成されたデータソースIDは、行セットや属性を操作するために、<jbo:RowsetIterate>
や<jbo:ShowValue>
などの他のデータ・タグのdatasource
属性により参照されました。現在のJDeveloperでは、<jbo:DataSource>
タグはデータ・バインドを取得するための1つの方法にすぎません。
JDeveloperリリース9.0.3からは、次のいずれかのアプローチを使用して、BC4J JSPページでJSPデータ・バインドを取得できます。
<jbo:DataSource>
タグを使用し、他のデータ・タグに渡せるビュー・オブジェクト・インスタンスへのハンドルを取得します。<jbo:DataSource>
タグのかわりに<jbo:ViewObject>
タグを使用します。<jbo:ViewObject>
タグは、より明示的なタグ名を使用して古い<jbo:DataSource>
タグの機能をミラーリングするために用意されています。 datasource
属性としてappModuleId.viewObjectInstanceName
を指定します。これは、JSPデータ・バインド・ツールを使用してBC4J JSPにデータ・タグを挿入する際に使用するアプローチです。データソースとしてビュー・オブジェクト・インスタンスを直接指定できるということは、<jbo:ViewObject>
タグと<jbo:DataSource>
タグがBC4J JSPページに必要でなくなったことを意味します。たとえば、次のコンポーネント・タグは、データソースid
を定義せずにビュー・オブジェクト・インスタンス名を使用します。
<jbo:DataTable datasource="MyAppModuleId.CustomersView1" />
ビュー・オブジェクト・インスタンス名を使用する場合は、<jbo:ApplicationModule>
データ・タグに指定したアプリケーション・モジュールのid
を指定する必要があることに注意してください。
また、ビュー・オブジェクトの特定の行セットを操作する場合は、特定のアプリケーション・モジュールid
を持つviewobjectName#rowsetName
表記を使用できます。
<jbo:DataTable datasource="MyAppModuleId.CustomersView1#CustomersView1MyRowset" />
BC4Jデータ・タグ<jbo:CreateRowSet>
を使用し、名前を指定した行セットを作成することもできます。
以前と同様に、BC4J JSPページには、アプリケーション・モジュールへの参照のある<jbo:ApplicationModule>
データ・タグが含まれている必要があります。すべてのBC4J JSPページが、同じアプリケーション・モジュールId
を参照していることが非常に重要です。JSPページがアクセスするアプリケーション・モジュールは、アプリケーション・モジュールのセッション情報およびパッシベーションの動作(保存したアプリケーション・モジュール・インスタンスの状態)により区別されます。単一のアプリケーション・モジュールId
が使用されることを保証するために、BC4J JSPウィザードや、コンポーネント・パレットからアクセスできる属性エディタなどのJDeveloper設計時ツールは、Id
を自動的に設定します。デフォルトId
は、BC4J JSPプロジェクトの .cpx
構成ファイルにあるセッション名に基づいています。複数のアプリケーション・モジュールを参照するBC4J JSPページを作成した場合、アプリケーションはランタイム・エラーを表示します。
注意: StrutsベースのBC4J JSPページでは、アプリケーション・モジュールはデータ・タグを介して定義されず、実行時にStrutsサーブレット・コントローラにより作成されるBC4JRequestProcessorで作成されたBC4JContextインスタンスに定義されます。
次の例では、<jbo:ViewObject>
タグまたは<jbo:DataSource>
タグを使用し、BC4J APIを使用可能にするスクリプト可能変数を取得する方法を示します。
<jbo:DataSource id="ds" appid="Mypackage1Module"
viewobject="EmpView1" />
<%
RowSet rs = ds.getRowSet();
Row currentRow = rs.getCurrentRow();
%>
<jbo:ViewObject id="vo" name="Mypackage1Module.EmpView1" />
<% Row currentRow = vo.getCurrentRow(); %>
JSPページおよびビジネス・コンポーネントについて
JSPページおよびBC4Jアプリケーション・モジュール・プールについて
bc4j.xcfgファイルでのBC4J JSPランタイム・プロパティの定義
Business Components for Java(BC4J)のデプロイについて