<x:setColumn>

x:setColumn 操作用来设置列的值。可以显式地指定哪一列、哪一行以及在哪一个 Select 中,也可以让这些选项具有缺省值,如下面的 index、row 和 name 属性所述。如果操作发生在 x:repeat 的主体内,这就特别有用。

如果在除当前行之外的任何行中设置值,将首先对数据库应用当前行中所作的任何更改。操作结束时,您用来设置值的行成为当前行。

也可以使用 x:column 操作设置列值,但该操作只能发生在 x:updateRowx: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。此属性是可选的。如果操作发生在指定了 over="columns"x:repeat 的主体内,则属性缺省为 x:repeat 的下标变量的值。否则,必须用此属性或 colName 属性标识一列。以显式方式指定两者是不正确的。
row
将要用来设置列值的行的编号。第一行的编号为 1。此属性是可选的。如果不指定它,则缺省值取决于此操作是否位于指定了 over="rows"x:repeat 的主体之内。如果是,将使用该 x:repeat 的下标变量的值。如果不是,将使用结果集的当前行的索引。
value
列的值。您提供的值可以是计算任何 Java™ 对象的表达式。此属性是必需的。

如果提供的值为字符串,则此操作会将它转换为适合于该列的 Java 对象类型。保留您输入的大小写不变。如果值为任何其他类型的对象,则该值必须是对于该列正确的类型,否则会出错。

我们提供了两个可用来设置此属性的特殊值:&empty 和 &null,它们分别代表空字符串和空对象引用。指定 value="" 等价于指定 value="<%=2.23 nullObj %>",其中 nullObj 是空对象引用。

nullToken
指定将被视为数据库空值的区分大小写字符串值。如果 value 属性包含此字符串,则将在数据库中将列设置为空。

此属性是可选的。如果省略它,则使用相关联的 x:select 操作上的同一属性的值。如果在两个位置中都省略此属性,则缺省值为 &empty。&empty 是一个特殊值,类似于 HTML 字符实体, 在此属性中,将其识别为代表空字符串。有关空值表示法的更多信息,请参阅空值

注: 此操作不会建立与数据库的连接。以后,必须执行 x:updateRow,该操作将进行连接、执行更新并断开连接。在执行更新之前,将无法移出此行。

反馈