ビジネス・コンポーネント・データ・アクセス・タグ - <jbo:Row>

行インスタンスを取得し、その行に対して操作を実行します。

JSP構文

<jbo:Row
   id="rowInstanceName"
   datasource="datasourceInstanceName"
   [ action="active | create | createinrange | createonly | current | delete | find | get | lock | update" ]
   [ rowkeyparam="HTTP parameter name"] | [ rowkey="rowPointer" ] >
      [JSP_tags]
</jbo:Row>

説明

<jbo:Row>データ・タグにより、行インスタンスに対する行の取得および行操作を実行できます。

行の取得操作には次のものがあります。

行操作を実行するには、その前に明確に行を特定する必要があります。データソースの行を特定するには、次のようにして<jbo:Row>タグを使用します。

<jbo:Row>タグで実行可能な行操作は次のとおりです。

参照: oracle.jbo.Row

属性

次の例では、ユーザーが別のJSPページで選択したマスター行に対するディテール行セットを、<jbo:Row>タグを使用して表示する方法を示しています。この例では、行の選択ページでHREFアンカーが生成され、ユーザーがこれをクリックすると、ディテール・ページが起動します。

次のコードでは、マスター表のHREFが、RowKeyValue HTTPパラメータ(パラメータ名はアプリケーション固有)を渡します。このパラメータは、ユーザーがShowValueタグのdataitemを特別な属性値であるRowKeyに設定して取得したものです。

<jbo:ApplicationModule id="MyPackageModule"
    configname="myPackage.MyPackageModule.MyPackageModuleLocal" 
    releasemode="Stateful" />

<jbo:DataSource id="dsMaster" appid="MyPackageModule" viewobject="DeptView"> 
</jbo:DataSource> 

<table border="1">
 <jbo:RowsetIterate datasource="dsMaster" >
   <TR> 
     <TD><a href="detail.jsp?RowKeyValue=<jbo:ShowValue datasource='dsMaster' 
	                                                    dataitem='RowKey'/>">See this record</a>
	 </TD> 
     <TD>Department Name:</TD>
	 <TD><jbo:ShowValue datasource="dsMaster" dataitem="Dname">
	     </jbo:ShowValue> 
     </TD>
   </TR>
 </jbo:RowsetIterate>
</table>    

受信ページでは、<jbo:Row>タグのfindアクションにより、渡された行キー値を含むHTTPパラメータの名前に基づいてユーザーがクリックした行が特定されます。findアクションでマスター・データソースの現在行を設定することにより、ディテール行セットが表示可能になります。

注意: ステートフル解放モード(デフォルト)でアプリケーション・モジュールを使用する場合は、行キーを使用して行を検索する前にデータソースをリフレッシュする必要があります。データソースは次のコードを使用してリフレッシュできます。:

<jbo:RefreshDataSource datasource="dsMaster" />

受信ページの構文を次に示します。この構文では、定義済のRowKeyValue HTTPパラメータを(送信および受信JSPページでこのパラメータ名が一致していることを確認したうえで)使用し、渡された行のディテール・ビューを表示します。

<jbo:ApplicationModule id="MyPackageModule" 
 configname="myPackage.MyPackageModule.MyPackageModuleLocal"
 releasemode="Stateful" />

<jbo:DataSource id="dsMaster" appid="MyPackageModule" viewobject="DeptView" >
</jbo:DataSource>

<jbo:RefreshDataSource datasource="dsMaster" />

<jbo:Row id="masterRow" datasource="dsMaster" action="find" rowkeyparam="RowKeyValue" >
</jbo:Row>

<jbo:DataSource id="dsDetail" appid="MyPackageModule" viewobject="EmpView" >
</jbo:DataSource>

<h2>Employees for Department: <jbo:ShowValue datasource="dsMaster" dataitem="Dname" 
</jbo:ShowValue>
</h2> <table border="1"> <jbo:RowsetIterate datasource="dsDetail" > <TR> <TD>Employee Name</a> </TD> <TD><jbo:ShowValue datasource="dsDetail" dataitem="Ename"> </jbo:ShowValue> </TD> </TR> </jbo:RowsetIterate> </table>

受信ページの重要な部分は<jbo:Row>タグ内にあります。

<jbo:Row id="masterRow" datasource="dsMaster" action="Find" rowkeyparam="RowKeyValue" >
</jbo:Row>    

次の例では、データソースへの新規レコードの挿入などのその他のタスクの実行にも<jbo:Row>タグを使用できることを示しています。

<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
  <jbo:ApplicationModule id="OnlineOrdersModule"
  configname="OnlineOrders.OnlineOrdersModule.LocalConfig"
  releasemode="Stateless" 
  />

<jbo:DataSource id="ds1" appid="OnlineOrdersModule" viewobject="CustomerView" >
</jbo:DataSource>

<jbo:Row id="newRow" datasource="ds1" action="create" >
  <jbo:SetAttribute dataitem="Id" value="101" />
  <jbo:SetAttribute dataitem="Lastname" value="wong" />
  <jbo:SetAttribute dataitem="Firstname" value="howard"/>
  <jbo:SetAttribute dataitem="Address.Street" value="101 Main st" />
  <jbo:SetAttribute dataitem="Address.City" value="Redwood City" />
</jbo:Row>

</BODY>
</HTML>

<jbo:Commit appid="OnlineOrdersModule" />

<jbo:ReleasePageResources /