将字段绑定到 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;
   }
}

我正在强制创建一个空向量。我认为问题是当字段为空时我的向量以某种方式被转换为字符串。