<x:insertRow>

x:insertRow アクションは、x:select アクションを使用して作り出された結果セットに新しい行を追加するために使用されるものです。 その本体に新しい行に値を提供する x:column タグが含まれている場合は、新しい行がただちにデータベースに挿入されます。 含まれていない場合は、空の行がプレースホルダーとして結果セットに追加されます。 このプレースホルダーでは、後に x:updateRow アクションを使用して値を設定して、データベースを更新することができます。

x:insertRow アクションには、x:select アクションの中で参照される同じ接続情報が使用されます。

デフォルトにより、このアクションでは現在行の隣の行を挿入します。 ただし、他のロケーションに行を挿入する方法については、以下の行属性の説明を参照してください。 現在行の変更は最初にデータベースに適用されます。 アクションの終了時には、挿入された行は現在行となります。

このアクションにより、挿入された行の後のすべての行の番号付けが変ります。ただし、 このアクションが x:batch アクションの内部で起こらない場合に限ります。 この場合は x:batch の終了時まで番号付けが変わることはありません。

構文

<x:insertRow	 	name = "target bean name"
				row = "rowNumber"
				position = "before|after" > 
	<x:column 		colName = "name"
				index = "number"
				value = "value"
				nullToken = "string" />
</x:insertRow>

OR:

<x:insertRow	 	name = "target bean name"
				row = "rowNumber"
				position = "before|after" />

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

name
行が挿入される結果セットを含む DBSelect Bean の名前。 値には大/小文字の区別があり、値はスコープ内にある Select 変数と一致させる必要があります。 この name 属性が指定されている x:repeat の本体の内側にアクションがない (直接にせよ間接にせよ) 場合は、この属性が必須となります。 このような場合、この name 属性は、デフォルトにより最も近くの収容 x:repeat の中に指定されているものと同じ値に設定されます。
row
挿入された行の位置付けに使用される結果セットの中の行番号。 (値の 1 は 1 行目を指します。) この属性はオプションです。指定しなければ、デフォルト値は、 このアクションが over="rows" の指定されている x:repeat の本体の内部にあるかどうかに応じて決まります。 この場合、その x:repeat の索引変数の値が使用されます。 指定している場合は、結果セットの現在行の索引が使用されます。
position
行をターゲット行の前に挿入するか後に挿入するかを指定します。 デフォルトはターゲット行の前に行を挿入することです。

x:insertRow アクションは、その本体内に以下のタグをもつことができます。

<x:column>
桁に設定される値を指定します。

この例では、データベース挿入は行われず、空の行が結果セットの現在行の後に追加されます。 後に x:updateRow アクションを使用して桁値を設定して、データベースに行を挿入する必要があります。

<x:insertRow name="select1" position="after"></x:insertRow>

この例では、 結果セットの現在行の前に行が追加され、その列の値が設定され、行がデータベースに挿入されます。

<x:insertRow name="select1">
	<x:column colName="EMPNO"
		value='<%= request.getParameter("empnumber") %>' />
	<x:column colName="EMPNAME"
		value='<%= request.getParameter("empname") %>' />
	<x:column colName="COMMISSION"
		value='<%= request.getParameter("empcomm") %>' />
</x:insertRow>

フィードバック