<x:repeat>

x:repeat アクションは、JavaBeans™ の反復プロパティーを繰り返し反復させる、 さらに具体的には結果セットの中の行と桁を繰り返し反復させるために使用されるものです。 x:repeat の本体内部の全アクションと HTML が反復のたびに 1 回処理されます。

DBSelect または DBProcedureCall Bean を指定し、その反復プロパティーを指定して繰り返し反復を行うか、索引変数に開始値と終了値を指定することによって、 あるいはこの両方を行うことによって反復回数を制御することができます。

索引変数は暗黙とすることができ、あるいはこれに名前を指定して、スクリプトレットの中、 あるいは x:repeat の本体内のその他の JSP SQL アクションの中で明示して使用することができます。 索引変数は暗黙であろうと明示であろうと、x:repeat の本体内の JSP SQL アクションの中の行、桁、 またはパラメーターを識別する特定属性のデフォルト値として使用されます。 詳細については、下図を参照してください。

開始値と終了値および明示索引変数を指定する場合は、Select または ProcedureCall ではなく、オブジェクトを繰り返し反復させるために索引変数を使用することができます。

x:repeat アクションはネストできます。 たとえば、外側の x:repeat を使用して結果セットの行を、内側の x:repeat を使用してそれぞれの行の中の桁を繰り返し反復させることができます。

構文

<x:repeat  	name = "target bean name"
			over = "rows|columns|nothing"
			index = "name"
			start = "starting_index"
			end = "ending_index >
</x:repeat>

x:repeat アクションには以下の属性があります。

name
DBSelect または DBProcedureCall Bean の名前。 この Bean は反復の本体内のアクションのデフォルト・ターゲットとして使用されます。 この属性はオプションです。この x:repeat が他の x:repeat の内側にネストされる場合、その名前属性が継承されます。

名前の付けられた Bean 以外の Bean をターゲットとしているアクションを x:repeat の本体に入れることができます。 このようにする必要があるのは、同じ値を使用して行、桁、 またはその他の Bean の他の反復プロパティーに索引付けができる場合だけです。 x:getColumn または x:updateRow のようなアクションの場合は、 アクション上の他の Bean の名前をデフォルトにしないで提供することが必要となります。

over
反復が繰り返し起こる反復プロパティー。この属性はオプションです。値を指定しない場合は、 行が繰り返し反復されます。この名前属性の値は、反復プロパティーが属するオブジェクトを識別するものです。

この x:repeat の索引変数の値は、反復プロパティーの最初のオカレンスから最後のオカレンスまでの範囲にわたります。 x:repeat の本体内の JSP SQL タグの以下の属性では、索引変数もデフォルト値となります。

over の値 JSP SQL タグ 属性 索引範囲
rows <x:updateRow>

<x:deleteRow>

<x:insertRow>

<x:getColumn>

<x:setColumn>

row 1 から行の番号まで (包含)
columns <x:getColumn>

<x:setColumn>

index 1 から桁の番号まで (包含)

アクションにその独自の名前属性がなく、親 x:repeat から名前属性を継承していない場合は、 索引変数が x:repeat の本体内の名前属性のデフォルトとして使用されています。 この場合は、x:repeat タグ上に終了属性を明示して指定することによって索引の終了値を定める必要があります。

over (繰り返し) の値が rows であり、名前属性が DBProcedureCall Bean を識別している場合は、DBProcedureCall Bean の現在の結果セットの行が繰り返し反復されます。 この場合は、x:repeat の本体内の他の結果セットに移動しないようにしてください。 移動すると、索引変数の範囲が動的に変更されることがあります。

index
この x:repeat の索引変数のオプション名。指定する値は、有効な Java™ ID でなければなりません。 この (大/小文字の区別がある) 名前は、この繰り返し (またはその内部でネストされた繰り返し) の本体内のスクリプトレットの中で使用することができます。

この名前と一緒に作成される変数の型は Integer (整数) となります。 この変数をスクリプトレットの中で使用する場合は、Integer が使用されるコンテキストの中で有効であることを確認してください。 たとえば、DBSelect Bean の setCurrentRow() メソッドには Integer ではなく、int 変数が必要です。 ただし、この変数を x:getColumn のような、他の JSP SQL アクションの中で使用する時には、 データ型について気にする必要はありません。

start
この x:repeat の開始索引値。この属性はオプションです。デフォルトは 1 であり、有効な値は正整数です。
end
この x:repeat の終了索引値。この属性が省略できるのは、 アクションに名前属性 (継承された属性のこともある) はあるが、その over 属性がない場合です。 繰り返し反復させる名前と反復プロパティーの組み合わせにより、反復回数が制限されます。 終了属性を同じように指定した場合は、最初に達した制限値により反復が終了します。

終了属性には「包含」制限値を指定します。これは、この値が反復の最後の値であることを意味します。 (終了属性の値が開始属性の値よりも小さい場合は、反復は行われません。) 有効な値は、整数の 0 以上です。


フィードバック