指定したビジネス・コンポーネント・アプリケーション・モジュールから、ビュー・オブジェクトのインスタンスを動的に作成します。
JSP構文
<jbo:CreateViewObject
appid="appModuleInstanceName"
name="viewObjectName"
[ rangesize="number of rows displayed | -1 | 1" ]
>
SQL_SELECT
</jbo:CreateViewObject>
説明
<jbo:CreateViewObject>
データ・タグでは、ボディ内にSQLのSELECT文を定義できます。通常は、ユーザー入力から文を生成します。たとえば、ユーザー入力に基づいて作成した動的ビュー・オブジェクトにバインドしてLOV選択リストを表示します。
動的ビュー・オブジェクト・インスタンスを操作するには、<jbo:DataSource>
タグを使用し、そのインスタンスに基づいてデータソースを作成する必要があります。このタグでは、行セットおよび属性を操作できるRowsetIterateタグやShowValueタグなどの他のデータ・タグに渡す動的ビュー・オブジェクトのIDを定義します。行セットを生成するには、CreateViewObjectタグのボディにSQLのSELECT文を含む必要があります。
<jbo: CreateViewObject >
SQL Select goes here
</jbo: CreateViewObject >
その後、後述の例のように<jbo:RowsetIterate>
および<jbo:ShowValue>
データ・タグを使用して、結果セットからデータを表示できます。
注意: 動的ビュー・オブジェクトの属性名を参照するデータ項目には、大文字を使用する必要があります。CreateViewObjectデータ・タグは直接データベースに問合せを実行するため、通常のビジネス・コンポーネント属性の別名は無視され、データベース表の列名は常に大文字で表されます。
参照: oracle.jbo.ViewObject
属性
appid: <jbo:ApplicationModule>
データ・タグで指定したデータ・アプリケーションid。
name: 動的ビュー・オブジェクトの名前。この名前によってインスタンスが作成されたビュー・オブジェクトが識別されます。このパラメータでは名前付きデータ・ソースは作成されません。動的ビュー・オブジェクトのデータ・ソースを作成するには、データ・ソース・タグのviewobjectパラメータに名前を渡す必要があります。
注意: この名前が既存のビュー・オブジェクトの名前と競合する場合は、既存のビュー・オブジェクトが削除されます。これは、現在使用中のビュー・オブジェクトを別のもので置き換える場合に便利です。
rangesize: (オプション)データ・ソースからフェッチする範囲の行数。これは行セットの全体を操作しない場合に便利です。範囲の指定によって、データ・ソースの行のサブセットにアクセスするために使用できるウィンドウを効果的に定義できます。範囲の指定は、行セットが大きいためクライアントにすべての行を渡さない場合、またはページに特定の行数を表示する場合に便利です。デフォルトでは、範囲サイズは1に設定されています。値-1ではすべての行がフェッチされます。
SQL_SELECT: 指定したSQL_SELECT文を介してビュー・オブジェクトの問合せを定義し、JSPが操作を行う対象の行セットを生成します。通常、この文はユーザー入力を基に生成されます。問合せ内の名前は、データベース表および列によって指定されます。そのため、大文字で指定する必要があります。
ヒント: 問合せの構築方法がわからない場合は、このフィールドに何かを入力して、生成されたデータ・タグのSQL文を調整します。
例
次の例では、CUSTOMERS表に対する問合せに基づいて動的ビュー・オブジェクトを作成します。ページにはビュー・オブジェクト属性であるPHONE_NUMBERが表示されます。動的ビュー・オブジェクトの属性名はデータベースの列名で決まるため(ビジネス・コンポーネント・プロジェクトの永続ビュー・オブジェクトに対して定義される属性の別名ではありません)、<jbo:ShowValue>
のデータ項目(PHONE_NUMBER)の値は、列名と同じになります。
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<%@ page contentType="text/html;charset=windows-1252"%>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=windows-1252">
<TITLE>
Hello World
</TITLE>
</HEAD>
<BODY>
<jbo:ApplicationModule id="MypackageModule"
configname="mypackage.MypackageModule.MypackageModuleLocal"
releasemode="Stateful" />
<jbo:CreateViewObject appid="MypackageModule" name="MyNewViewObject" >
select * from CUSTOMERS
</jbo:CreateViewObject>
<jbo:DataSource appid="MypackageModule" id="ds1"
viewobject="MyNewViewObject" />
<jbo:RowsetNavigate datasource="ds1" action="First" />
<jbo:RowsetIterate datasource="ds1" >
<jbo:ShowValue datasource="ds1" dataitem="PHONE_NUMBERS" ></jbo:ShowValue>
</jbo:RowsetIterate>
</BODY>
</HTML>
@ <jbo:ReleasePageResources />
Copyright © 1997, 2009, Oracle. All rights reserved.