我们必须使用 Java 中一个非常具体的类,它具有以下属性:
protected SPSExchangedDocumentType spsExchangedDocument;
public SPSExchangedDocumentType getSPSExchangedDocument() {
return spsExchangedDocument;
}
我在 jsp 页面中使用该类的实例:
<c:out value = "${certificate.spsExchangedDocument.id.value}"/>
它向我抛出了以下异常:
javax.el.PropertyNotFoundException:类“un.unece.uncefact.data.standard.spscertificate._5.SPSCertificateType”没有属性“spsExchangedDocument”。在 javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:579) 在 javax.el.BeanELResolver.getValue(BeanELResolver.java:281) 在 javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) 在 com.sun。 el.parser.AstValue.getValue(AstValue.java:138) 在 com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206) 在 org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1001)
我认为问题直接在于该属性称为spsExchangedDocument,但该方法称为getSPSExchangedDocument。我无法更改类的代码,因为它是从 XSD 自动生成的,我们无法更改,所以我应该更改页面。但是我应该使用什么名称才能让 EL 正确解析它:
- spsExchanged 文档。
- SPSExchanged 文档。
- sPSExchangedDocument。
无论如何,Java 和 EL 中这种命名约定的规则是什么?