EL在下划线之前无法处理单个字符?

时间:2013-05-09 13:13:05

标签: java naming-conventions javabeans el

我正在使用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" />

非常感谢任何想法。感谢。

1 个答案:

答案 0 :(得分:1)

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