Java EL can';不能在下划线之前处理单个字符?

Java EL can';不能在下划线之前处理单个字符?,java,naming-conventions,javabeans,el,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

我使用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_蜕皮和其他以 多个下划线分隔的值,但第一个是单个字符,我得到了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" />


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

惯例是房产名称以小写字母开头。因此,如果属性名为
theProperty
,则getter名为
getTheProperty
。因此,如果您有一个名为
getP\u COV\u MOULT
的getter,我希望EL属性是
p\u COV\u MOULT
。但是,你的命名很奇怪,所以我不能100%肯定它会起作用。

你在EL表达式中使用
p\u COV\u MOULT
会发生什么?@JB这是个好问题,我不好意思说我从未尝试过。它看起来很有效,很有意义,谢谢。我很感激这是一个评论,但是你用一个答案回答了问题,所以如果你把它作为一个答案贴出来,我会接受的。尼尔什·阿尔里德把它作为一个答案贴出来,所以接受他的答案。@JB Nizet这么说,谢谢,我会的。谢谢,这很有效。我很感激我应该遵循命名约定,但这是一个奇怪的项目,有着奇怪的要求。很好:)我在手机上打字,所以速度有点慢。在我发布之前没有看到@JBNizet的评论。