ビジネス・コンポーネント・データ・タグを使用した行の検索

このトピックでは、Business Componentsランタイムで提供される行シーク機能と、ビジネス・コンポーネント・データ・タグによる操作方法について説明します。ビジネス・コンポーネント・データ・タグは、ビュー・オブジェクトについて多数のナビゲート方法を提供します。

行キーを含むURLの生成

行キーは、行セット内の1行を表す一意の識別子です。このキーは、後で行セット内でその行を検索するために使用可能な不透明オブジェクトです。次のSnippetでは、行セット(DataSourceデータ・タグで定義)内の行をすべて反復するために<jbo:RowsetIterate>を使用しています。

<jbo:ApplicationModule configname="myPackage.MyPackageModule.MyPackageModuleLocal" 
      id="MyPackageModule" 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>

マスター・ページの重要部分は、ShowValueタグを使用したHREFです。

<a href="submit.jsp?RowKeyValue=<jbo:ShowValue datasource='dsMaster' 
    dataitem='RowKey'/>">See this record</a>        

submit.jspの起動用アンカーを生成してRowKeyValue HTTPパラメータで渡します("RowKeyValue"にはアプリケーション固有の名前を選択できます)。このコードでは、<jbo:ShowValue>タグを使用し、特殊な属性値RowKeyを使用して、行IDの文字列表現をレンダリングしています。

RowKey HTTPパラメータに基づく行の検索

詳細ページでは、マスター・ページ上でクリックされた行を検索するためにRowKeyValue HTTPパラメータを使用します。そのためにはRowタグを使用します。このタグにより、キー値を含むHTTPパラメータの名前に基づいて適切な行が自動的に検索されます。詳細ページの構文は、次のとおりです。

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

<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="Package17Module"
       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:RefreshDataSource datasource="dsMaster" />


ビジネス・コンポーネント・データ・タグについて
ビジネス・コンポーネント・データ・タグを使用した行の編集について

ビジネス・コンポーネント・データ・タグについては次のリファレンスを参照してください。

リファレンス: ビジネス・コンポーネント・データ・タグ・ライブラリ