将字段绑定到 bean 时索引超出范围(字符串问题?)
Index out of range when tying field to a bean (string issue?)
我在与 bean 绑定的重复控件中有一个字段:
<xp:inputText
value="#{requestBean.driverChanges[rowIndex]}"
id="DriverChange">
</xp:inputText>
getDriverChanges() 如下:
public Vector<String> getDriverChanges() {
return driverChanges;
}
并设置如下:
setDriverChanges(doc.getItemValue("DriverChanges", Vector.class));
当 DriverChanges 字段中有值时,我的代码工作正常。但是,如果 DriverChanges 是 empty/blank,我会得到以下信息:
Error getting index 0
Array index out of range: 0
我已经尝试使用始终 return 向量的代码计算 xp:inputText 字段中的值,但这会导致我的 xp:inputText 变为只读(我不能t edit/change 值并保存)。
任何人都知道如何通过 bean 将字符串 return 作为向量并仍然保持 xp:inputText 可编辑?
您必须为重复中可用的所有 rowIndexes 初始化 Vector driverChanges。
Vector driverChanges 中的条目数必须至少与 repeat 的值条目数相同。
您的错误消息 Array index out of range: 0
告诉您 Vector driverChanges 存在但没有条目。
我将 Java bean 中的 getDriverChanges() 更改为以下内容:
public Vector<String> getDriverChanges() {
if (this.driverChanges.isEmpty()) {
Vector<String> emptyVector = new Vector<String>(1);
emptyVector.add("");
this.driverChanges = emptyVector;
return driverChanges;
} else {
return driverChanges;
}
}
我正在强制创建一个空向量。我认为问题是当字段为空时我的向量以某种方式被转换为字符串。
我在与 bean 绑定的重复控件中有一个字段:
<xp:inputText
value="#{requestBean.driverChanges[rowIndex]}"
id="DriverChange">
</xp:inputText>
getDriverChanges() 如下:
public Vector<String> getDriverChanges() {
return driverChanges;
}
并设置如下:
setDriverChanges(doc.getItemValue("DriverChanges", Vector.class));
当 DriverChanges 字段中有值时,我的代码工作正常。但是,如果 DriverChanges 是 empty/blank,我会得到以下信息:
Error getting index 0
Array index out of range: 0
我已经尝试使用始终 return 向量的代码计算 xp:inputText 字段中的值,但这会导致我的 xp:inputText 变为只读(我不能t edit/change 值并保存)。
任何人都知道如何通过 bean 将字符串 return 作为向量并仍然保持 xp:inputText 可编辑?
您必须为重复中可用的所有 rowIndexes 初始化 Vector driverChanges。
Vector driverChanges 中的条目数必须至少与 repeat 的值条目数相同。
您的错误消息 Array index out of range: 0
告诉您 Vector driverChanges 存在但没有条目。
我将 Java bean 中的 getDriverChanges() 更改为以下内容:
public Vector<String> getDriverChanges() {
if (this.driverChanges.isEmpty()) {
Vector<String> emptyVector = new Vector<String>(1);
emptyVector.add("");
this.driverChanges = emptyVector;
return driverChanges;
} else {
return driverChanges;
}
}
我正在强制创建一个空向量。我认为问题是当字段为空时我的向量以某种方式被转换为字符串。