在JSP页面上,我这样做${records.size}
其中记录为Set
类型。然后我得到这个错误。
我检查了文档,并且size()
中提供了org.hibernate.collection.internal.PersistentSet
方法。
那么造成此错误的可能原因是什么?
答案 0 :(得分:1)
语法${records.size}
基本上告诉EL打印size
标识的bean的${records}
属性(不是方法!)。当EL需要获取属性时,它将在bean后面的类中查找getter方法。因此,当属性名称为size
时,则预期的getter方法为getSize()
。如果没有此方法,那么您将完全遇到当前遇到的异常。另请参见javax.el.PropertyNotFoundException: Property 'foo' not found on type com.example.Bean。
实际上,org.hibernate.collection.internal.PersistentSet
没有使用getSize()
方法。即它确实根本没有size
属性。因此,例外是完全正确的。
基本上,您想改为调用size()
方法,而不是size
属性后面的getter方法。相应地修复您的EL表达式:
${records.size()}