0

我正在使用 EL 从存储在会话中的 bean 中提取对象。

对象问题称为 P_COV_MOULT 并声明如下:

this.P_COV_MOULT = new FormField("F_B_P_COV_MOULT","");

并通过 getter 方法访问,如下所示:

public FormField getP_COV_MOULT() {
    return P_COV_MOULT;
}

这是由 NetBeans 生成的。

我很欣赏由下划线分隔的所有大写字母的使用不符合非常量的命名约定,但它对语义值很有用。

我在同一个 bean 中存储了许多其他属性,并且这些属性都很好,并且已经有一段时间了。

但是,使用此 P_COV_MOULT 和其他格式为多个下划线分隔值但第一个是单个字符的属性,我得到一个 javax.el.PropertyNotFoundException。

对象/属性以与所有其他对象完全相同的方式存储,但只是无法找到它们。

我尝试插入一个单独的方法 getp_COV_MOULT(),假设它错误地(或正确地)将 EL 中的名称转换为 getter 并且没有调用 getP_COV_MOULT(),而是调用不同的方法,例如 getp_COV_MOULT() ,但这没有用。

这是EL:

<input type="text" name="${findingBiometrics.P_COV_MOULT.name}" id="${findingBiometrics.P_COV_MOULT.name}" value="${findingBiometrics.P_COV_MOULT.value}"
                                           ${findingBiometrics.P_COV_MOULT.readonlyState} ${findingBiometrics.P_COV_MOULT.disabledState} size="5" />

任何想法将不胜感激。谢谢。

4

1 回答 1

1

约定是属性名称以小写字母开头。因此,如果属性名称是theProperty,那么 getter 就是命名的getTheProperty。所以如果你有一个 getter 调用getP_COV_MOULT,我希望 EL 属性是p_COV_MOULT。但是,您的命名很奇怪,所以我不能 100% 确定它会起作用。

于 2013-05-09T13:18:42.390 回答