<x:setColumn>

x:setColumn アクションは、桁の値の設定に使用されるものです。 どの桁を、どの行の、どの Select で選択するかについて明示して指定することができ、 以下に述べるように属性 index、row、および name の中で上記の選択項目をデフォルトにすることもできます。 こうしたことが特に有用となるのは、アクションが x:repeat の本体の内部で起こる場合です。

現在行でない行の中で値を設定した場合は、現在行の中で行われた変更が最初にデータベースに適用されます。 値が設定されている行は、このアクションの終了時に現在行となります。

x:column アクションを使用して桁値を設定することもできます。しかし、 そのアクションが起こるのは x:updateRow または x:insertRow の本体内部に限られます。一方、x:setColumn はターゲット DBSelect Bean のスコープ内のどこでも使用することができます。

構文

<x:setColumn 	name = "target bean name"
			colName = "name"
			index = "number"
			row = "rowNumber"
			value = "value"
			nullToken = "string" />

x:setColumn 要素には以下の属性があります。

name
桁値が設定される結果セットを含む DBSelect Bean の名前。 値には大/小文字の区別があり、値はスコープ内にある Select アクションと一致させる必要があります。 この name 属性が指定されている x:repeat の本体の内側にアクションがない (直接にせよ間接にせよ) 場合は、この属性が必須となります。 このような場合、この name 属性は、デフォルトにより最も近くの収容 x:repeat の中に指定されているものと同じ値に設定されます。
colName
桁の名前。 この値には大/小文字の区別があります。この属性はオプションです。この属性にはデフォルト値はありません。over="columns" が指定されている x:repeat の本体の内部でアクションが起こらない場合は、 この属性または index 属性のいずれかを使用して桁を識別する必要があります。 両方を明示して指定するとエラーになります。
index
桁の索引。1 桁目は索引の 1 です。この属性はオプションです。 over="columns" が指定されている x:repeat の本体の内部でアクションが起こる場合は、 この属性のデフォルトは x:repeat の索引変数の値になります。 アクションが起こらない場合は、この属性または colName 属性のいずれかを使用して桁を識別する必要があります。両方を明示して指定するとエラーになります。
row
桁値が設定される行の番号。最初の行の番号は 1 です。この属性はオプションです。 指定しなければ、デフォルト値は、 このアクションが over="rows" の指定されている x:repeat の本体の内部にあるかどうかに応じて決まります。 この場合、その x:repeat の索引変数の値が使用されます。 指定している場合は、結果セットの現在行の索引が使用されます。
value
桁の値。 指定する値は、Java™ オブジェクトを評価する式とすることができます。この属性は必須です。

指定する値がストリングの場合、 このアクションではこの値が桁に合う Java オブジェクト・タイプに変換されます。大/小文字の区別は入力した通りに保存されます。この値が他のタイプのオブジェクトである場合は、 このオブジェクトは桁に合う正しいタイプであることが必要です。正しくなければ、エラーが発生します。

この属性の設定に使用できるように、2 つの特殊値 &empty と &null が用意されています。 前者は空ストリングを、後者は NULL オブジェクト参照を表します。 value="" を指定することは value="<%=2.23 nullObj %>" を指定することと同じです。 ここで、nullObj は NULL オブジェクト参照です。

nullToken
大/小文字が区別されるストリング値を指定します。この値はデータベースの NULL 値として扱われます。 value 属性にこのストリングが含まれている場合は、この桁はデータベースの中で NULL 設定されます。

この属性はオプションです。この属性を省略した場合は、 関連する x:select アクション上の同じ属性の値が使用されます。両方の場所でこの属性が省略された場合のデフォルトは &empty です。 (&empty は HTML 文字エンティティーに類似した特殊値であり、この属性では空ストリングを表すものとして認識されます。) NULL 値の表記の詳細については、『NULL 値』を参照してください。

注: このアクションでは、データベースへの接続は確立されません。後に x:updateRow を実行することが必要となります。これにより、接続し、更新を行い、切り離します。 更新を行うまでこの行を離れることはできません。

フィードバック