指定されたデータソースの行を反復します。
JSP構文
<jbo:RowsetIterate
datasource="datasourceInstanceName"
[ changecurrentrow="true | false" ]
[ userange="true | false" ]
>
[JSP tags in RowsetIterate body]
</jbo:RowsetIterate>
説明
RowsetIterateタグは、指定されたデータソース行セットの行を反復します。反復対象の行は、データソース・インスタンスの指定範囲により制限されます。イテレータは、データソース行セット範囲にある最初の行から最後の行へ順に処理を実行します。
RowsetIterateタグの本体では、次の行に進む前に、反復された行に対して処理を実行できます。たとえば、RowsetIterateタグを使用し、マスター/ディテール・ページに行セット・データを表示できます。反復される行からデータを抽出するためには、表示するデータソースに対してイテレータ・インスタンスを1つ作成し、ShowValueタグを使用するだけです。
注意: RowsetIterateタグの本体に挿入するタグは、RowsetIterateで指定されたデータソースからデータソース・インスタンスを取得します。これにより、RowsetIterateタグ本体に記述する属性の数を減らすことができます。
changecurrentrow
属性により、データソースの行セットを反復する際に、現在の行を変更するかどうかを制御します。データソース内の行の現在位置を変更すると、追加の問合せが実行されるかもしれません。changecurrentrow
属性を有効にした場合、行イテレータは現在の行にマスター/ディテール・ビュー・リンクが存在するかどうかを判断し、存在する場合はディテール行を取得するために問合せが実行されます。JSPページで現在の行を変更してマスター/ディテール表の行セット・データを表示する必要がない場合、追加の問合せが実行されないようにするためにchangecurrentrow
属性を無効にします。
注意: 順方向のみのモードでBC4Jデータソースを使用するJSPページでは、<jbo:RowsetIterate>データ・タグで現在の行を変更できない場合、ランタイム例外がスローされます。順方向のみのモードが有効に設定されているデータソースを使用する場合は、changecurrentrow
をtrue
(デフォルト)のままにしておいてください。
RowsetIterateタグで設定するイテレータ自体には、条件設定がありません。行セットの結果を制限する条件の定義は、ビジネス・コンポーネント・データソースに対して設定する必要があります。
参照項目: oracle.jbo.RowIterator
属性
datasource: 反復する行セットを含むデータソースのID。データソースは、DataSourceデータ・タグを使用して作成します。
changecurrentrow: データソースの行セット内でイテレータが移動する際、行の現在位置を変更するかどうかを指定します。デフォルトはtrue
で、旧バージョンとの下位互換性を維持します。ただし、多くの場合、この属性をfalse
に設定し、複数の行セットで現在の行を変更しないようにします。
注意: データソースで順方向のみのモードが有効に設定されている場合(たとえば<jbo:DataSource>のforwardonly
属性がtrue
に設定されている場合)、changecurrentrow
をtrue
に設定する必要があります。順方向のみのモードの詳細は、<jbo:DataSource>のヘルプ・トピックを参照してください。
userange: 行セット・イテレータの動作範囲として、データソースの行セットに指定された範囲を使用するかどうかを指定します。デフォルトはfalse
で、下位互換性を維持します。行セット全体を反復しない場合は、true
に設定します。
例
次の例では、データソースの行セットを反復して、各行のName属性のリンクを表示する表を作成します。
<jbo:RowsetIterate datasource="category_vo">
<TR>
<TD colspan=3>
<a href="srch_results.jsp?cid=<jbo:ShowValue dataitem="Id" />" target="contentsframe"> <jbo:ShowValue dataitem="Name"/></a>
</TD>
</TR>
</jbo:RowsetIterate>